home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / ear / mui23dev.lha / MUI / Developer / C / Include / libraries / mui.h
C/C++ Source or Header  |  1994-12-23  |  85KB  |  2,212 lines

  1. /***************************************************************************
  2. **
  3. ** MUI - MagicUserInterface
  4. ** (c) 1993 by Stefan Stuntz
  5. **
  6. ** Main Header File
  7. **
  8. ****************************************************************************
  9. ** Class Tree
  10. ****************************************************************************
  11. **
  12. ** rootclass               (BOOPSI's base class)
  13. ** +--Notify               (implements notification mechanism)
  14. **    +--Family            (handles multiple children)
  15. **    !  +--Menustrip      (describes a complete menu strip)
  16. **    !  +--Menu           (describes a single menu)
  17. **    !  \--Menuitem       (describes a single menu item)
  18. **    +--Application       (main class for all applications)
  19. **    +--Window            (handles intuition window related topics)
  20. **    +--Area              (base class for all GUI elements)
  21. **       +--Rectangle      (creates (empty) rectangles)
  22. **       +--Image          (creates images)
  23. **       +--Text           (creates some text)
  24. **       +--String         (creates a string gadget)
  25. **       +--Prop           (creates a proportional gadget)
  26. **       +--Gauge          (creates a fule gauge)
  27. **       +--Scale          (creates a percentage scale)
  28. **       +--Boopsi         (interface to BOOPSI gadgets)
  29. **       +--Colorfield     (creates a field with changeable color)
  30. **       +--List           (creates a line-oriented list)
  31. **       !  +--Floattext   (special list with floating text)
  32. **       !  +--Volumelist  (special list with volumes)
  33. **       !  +--Scrmodelist (special list with screen modes)
  34. **       !  \--Dirlist     (special list with files)
  35. **       +--Group          (groups other GUI elements)
  36. **          +--Register    (handles page groups with titles)
  37. **          +--Virtgroup   (handles virtual groups)
  38. **          +--Scrollgroup (handles virtual groups with scrollers)
  39. **          +--Scrollbar   (creates a scrollbar)
  40. **          +--Listview    (creates a listview)
  41. **          +--Radio       (creates radio buttons)
  42. **          +--Cycle       (creates cycle gadgets)
  43. **          +--Slider      (creates slider gadgets)
  44. **          +--Coloradjust (creates some RGB sliders)
  45. **          +--Palette     (creates a complete palette gadget)
  46. **          +--Colorpanel  (creates a panel of colors)
  47. **          +--Popstring   (base class for popups)
  48. **             +--Popobject(popup a MUI object in a window)
  49. **             \--Popasl   (popup an asl requester)
  50. **
  51. ****************************************************************************
  52. ** General Header File Information
  53. ****************************************************************************
  54. **
  55. ** All macro and structure definitions follow these rules:
  56. **
  57. ** Name                       Meaning
  58. **
  59. ** MUIC_<class>               Name of a class
  60. ** MUIM_<class>_<method>      Method
  61. ** MUIP_<class>_<method>      Methods parameter structure
  62. ** MUIV_<class>_<method>_<x>  Special method value
  63. ** MUIA_<class>_<attrib>      Attribute
  64. ** MUIV_<class>_<attrib>_<x>  Special attribute value
  65. ** MUIE_<error>               Error return code from MUI_Error()
  66. ** MUII_<name>                Standard MUI image
  67. ** MUIX_<code>                Control codes for text strings
  68. ** MUIO_<name>                Object type for MUI_MakeObject()
  69. **
  70. ** MUIA_... attribute definitions are followed by a comment
  71. ** consisting of the three possible letters I, S and G.
  72. ** I: it's possible to specify this attribute at object creation time.
  73. ** S: it's possible to change this attribute with SetAttrs().
  74. ** G: it's possible to get this attribute with GetAttr().
  75. **
  76. ** Items marked with "Custom Class" are for use in custom classes only!
  77. */
  78.  
  79.  
  80. #ifndef LIBRARIES_MUI_H
  81. #define LIBRARIES_MUI_H
  82.  
  83. #ifndef EXEC_TYPES_H
  84. #include "exec/types.h"
  85. #endif
  86.  
  87. #ifndef INTUITION_CLASSES_H
  88. #include "intuition/classes.h"
  89. #endif
  90.  
  91. #ifndef INTUITION_SCREENS_H
  92. #include "intuition/screens.h"
  93. #endif
  94.  
  95. #ifndef CLIB_INTUITION_PROTOS_H
  96. #include "clib/intuition_protos.h"
  97. #endif
  98.  
  99.  
  100. /***************************************************************************
  101. ** Library specification
  102. ***************************************************************************/
  103.  
  104. #define MUIMASTER_NAME "muimaster.library"
  105. #define MUIMASTER_VMIN 8
  106.  
  107. /*
  108. ** !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  109. ** Warning, the macros in this header file work only with muimaster.library
  110. ** V8 and above. If you recompile your programs, be sure to open
  111. ** muimaster.library with MUIMASTER_VMIN as version number.
  112. ** !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  113. */
  114.  
  115. #define MUI_OBSOLETE /* include obsolete identifiers */
  116.  
  117.  
  118.  
  119. /***************************************************************************
  120. ** Object Types for MUI_MakeObject()
  121. ***************************************************************************/
  122.  
  123. #define MUIO_Label        1   /* STRPTR label, ULONG flags */
  124. #define MUIO_Button       2   /* STRPTR label */
  125. #define MUIO_Checkmark    3   /* STRPTR label */
  126. #define MUIO_Cycle        4   /* STRPTR label, STRPTR *entries */
  127. #define MUIO_Radio        5   /* STRPTR label, STRPTR *entries */
  128. #define MUIO_Slider       6   /* STRPTR label, LONG min, LONG max */
  129. #define MUIO_String       7   /* STRPTR label, LONG maxlen */
  130. #define MUIO_PopButton    8   /* STRPTR imagespec */
  131. #define MUIO_HSpace       9   /* LONG space   */
  132. #define MUIO_VSpace      10   /* LONG space   */
  133. #define MUIO_HBar        11   /* LONG space   */
  134. #define MUIO_VBar        12   /* LONG space   */
  135. #define MUIO_MenustripNM 13   /* struct NewMenu *nm, ULONG flags */
  136. #define MUIO_Menuitem    14   /* STRPTR label, STRPTR shortcut, ULONG flags, ULONG data  */
  137. #define MUIO_BarTitle    15   /* STRPTR label */
  138.  
  139. #define MUIO_Label_SingleFrame   (1<< 8)
  140. #define MUIO_Label_DoubleFrame   (1<< 9)
  141. #define MUIO_Label_LeftAligned   (1<<10)
  142. #define MUIO_Label_Centered      (1<<11)
  143.  
  144.  
  145. /***************************************************************************
  146. ** ARexx Interface
  147. ***************************************************************************/
  148.  
  149. struct MUI_Command
  150. {
  151.     char        *mc_Name;
  152.     char        *mc_Template;
  153.     LONG         mc_Parameters;
  154.     struct Hook *mc_Hook;
  155.     LONG         mc_Reserved[5];
  156. };
  157.  
  158. #define MC_TEMPLATE_ID ((STRPTR)~0)
  159.  
  160. #define MUI_RXERR_BADDEFINITION  -1
  161. #define MUI_RXERR_OUTOFMEMORY    -2
  162. #define MUI_RXERR_UNKNOWNCOMMAND -3
  163. #define MUI_RXERR_BADSYNTAX      -4
  164.  
  165.  
  166. /***************************************************************************
  167. ** Return values for MUI_Error()
  168. ***************************************************************************/
  169.  
  170. #define MUIE_OK                  0
  171. #define MUIE_OutOfMemory         1
  172. #define MUIE_OutOfGfxMemory      2
  173. #define MUIE_InvalidWindowObject 3
  174. #define MUIE_MissingLibrary      4
  175. #define MUIE_NoARexx             5
  176. #define MUIE_SingleTask          6
  177.  
  178.  
  179.  
  180. /***************************************************************************
  181. ** Standard MUI Images
  182. ***************************************************************************/
  183.  
  184. #define MUII_WindowBack     0   /* These images are configured   */
  185. #define MUII_RequesterBack  1   /* with the preferences program. */
  186. #define MUII_ButtonBack     2
  187. #define MUII_ListBack       3
  188. #define MUII_TextBack       4
  189. #define MUII_PropBack       5
  190. #define MUII_PopupBack      6
  191. #define MUII_SelectedBack   7
  192. #define MUII_ListCursor     8
  193. #define MUII_ListSelect     9
  194. #define MUII_ListSelCur    10
  195. #define MUII_ArrowUp       11
  196. #define MUII_ArrowDown     12
  197. #define MUII_ArrowLeft     13
  198. #define MUII_ArrowRight    14
  199. #define MUII_CheckMark     15
  200. #define MUII_RadioButton   16
  201. #define MUII_Cycle         17
  202. #define MUII_PopUp         18
  203. #define MUII_PopFile       19
  204. #define MUII_PopDrawer     20
  205. #define MUII_PropKnob      21
  206. #define MUII_Drawer        22
  207. #define MUII_HardDisk      23
  208. #define MUII_Disk          24
  209. #define MUII_Chip          25
  210. #define MUII_Volume        26
  211. #define MUII_PopUpBack     27
  212. #define MUII_Network       28
  213. #define MUII_Assign        29
  214. #define MUII_TapePlay      30
  215. #define MUII_TapePlayBack  31
  216. #define MUII_TapePause     32
  217. #define MUII_TapeStop      33
  218. #define MUII_TapeRecord    34
  219. #define MUII_GroupBack     35
  220. #define MUII_SliderBack    36
  221. #define MUII_SliderKnob    37
  222. #define MUII_TapeUp        38
  223. #define MUII_TapeDown      39
  224. #define MUII_Count         40
  225.  
  226. #define MUII_BACKGROUND    128    /* These are direct color    */
  227. #define MUII_SHADOW        129    /* combinations and are not  */
  228. #define MUII_SHINE         130    /* affected by users prefs.  */
  229. #define MUII_FILL          131
  230. #define MUII_SHADOWBACK    132    /* Generally, you should     */
  231. #define MUII_SHADOWFILL    133    /* avoid using them. Better  */
  232. #define MUII_SHADOWSHINE   134    /* use one of the customized */
  233. #define MUII_FILLBACK      135    /* images above.             */
  234. #define MUII_FILLSHINE     136
  235. #define MUII_SHINEBACK     137
  236. #define MUII_FILLBACK2     138
  237. #define MUII_HSHINEBACK    139
  238. #define MUII_HSHADOWBACK   140
  239. #define MUII_HSHINESHINE   141
  240. #define MUII_HSHADOWSHADOW 142
  241. #define MUII_LASTPAT       142
  242. /*#define MUII_N1HSHINE      143*/
  243.  
  244.  
  245.  
  246. /***************************************************************************
  247. ** Special values for some methods
  248. ***************************************************************************/
  249.  
  250. #define MUIV_TriggerValue    0x49893131
  251. #define MUIV_NotTriggerValue 0x49893133
  252. #define MUIV_EveryTime       0x49893131
  253.  
  254. #define MUIV_Notify_Self        1
  255. #define MUIV_Notify_Window      2
  256. #define MUIV_Notify_Application 3
  257.  
  258. #define MUIV_Application_Save_ENV     ((STRPTR) 0)
  259. #define MUIV_Application_Save_ENVARC  ((STRPTR)~0)
  260. #define MUIV_Application_Load_ENV     ((STRPTR) 0)
  261. #define MUIV_Application_Load_ENVARC  ((STRPTR)~0)
  262.  
  263. #define MUIV_Application_ReturnID_Quit -1
  264.  
  265. #define MUIV_List_Insert_Top             0
  266. #define MUIV_List_Insert_Active         -1
  267. #define MUIV_List_Insert_Sorted         -2
  268. #define MUIV_List_Insert_Bottom         -3
  269.  
  270. #define MUIV_List_Remove_First           0
  271. #define MUIV_List_Remove_Active         -1
  272. #define MUIV_List_Remove_Last           -2
  273. #define MUIV_List_Remove_Selected       -3
  274.  
  275. #define MUIV_List_Select_Off             0
  276. #define MUIV_List_Select_On              1
  277. #define MUIV_List_Select_Toggle          2
  278. #define MUIV_List_Select_Ask             3
  279.  
  280. #define MUIV_List_GetEntry_Active       -1
  281. #define MUIV_List_Select_Active         -1
  282. #define MUIV_List_Select_All            -2
  283.  
  284. #define MUIV_List_Redraw_Active         -1
  285. #define MUIV_List_Redraw_All            -2
  286.  
  287. #define MUIV_List_Move_Top               0
  288. #define MUIV_List_Move_Active           -1
  289. #define MUIV_List_Move_Bottom           -2
  290. #define MUIV_List_Move_Next             -3 /* only valid for second parameter */
  291. #define MUIV_List_Move_Previous         -4 /* only valid for second parameter */
  292.  
  293. #define MUIV_List_Exchange_Top           0
  294. #define MUIV_List_Exchange_Active       -1
  295. #define MUIV_List_Exchange_Bottom       -2
  296. #define MUIV_List_Exchange_Next         -3 /* only valid for second parameter */
  297. #define MUIV_List_Exchange_Previous     -4 /* only valid for second parameter */
  298.  
  299. #define MUIV_List_Jump_Top               0
  300. #define MUIV_List_Jump_Active           -1
  301. #define MUIV_List_Jump_Bottom           -2
  302.  
  303. #define MUIV_Colorpanel_GetColor_Active -1
  304. #define MUIV_Colorpanel_SetColor_Active -1
  305.  
  306. #define MUIV_List_NextSelected_Start    -1
  307. #define MUIV_List_NextSelected_End      -1
  308.  
  309.  
  310. /***************************************************************************
  311. ** Control codes for text strings
  312. ***************************************************************************/
  313.  
  314. #define MUIX_R "\033r"    /* right justified */
  315. #define MUIX_C "\033c"    /* centered        */
  316. #define MUIX_L "\033l"    /* left justified  */
  317.  
  318. #define MUIX_N "\033n"    /* normal     */
  319. #define MUIX_B "\033b"    /* bold       */
  320. #define MUIX_I "\033i"    /* italic     */
  321. #define MUIX_U "\033u"    /* underlined */
  322.  
  323. #define MUIX_PT "\0332"   /* text pen           */
  324. #define MUIX_PH "\0338"   /* highlight text pen */
  325.  
  326.  
  327.  
  328. /***************************************************************************
  329. ** Parameter structures for some classes
  330. ***************************************************************************/
  331.  
  332. struct MUI_Palette_Entry
  333. {
  334.     LONG  mpe_ID;
  335.     ULONG mpe_Red;
  336.     ULONG mpe_Green;
  337.     ULONG mpe_Blue;
  338.     LONG  mpe_Group;
  339. };
  340.  
  341. #define MUIV_Palette_Entry_End -1
  342.  
  343.  
  344. struct MUI_Scrmodelist_Entry
  345. {
  346.     char *sme_Name;
  347.     ULONG sme_ModeID;
  348. };
  349.  
  350.  
  351.  
  352. /***************************************************************************
  353. **
  354. ** Macro Section
  355. ** -------------
  356. **
  357. ** To make GUI creation more easy and understandable, you can use the
  358. ** macros below. If you dont want, just define MUI_NOSHORTCUTS to disable
  359. ** them.
  360. **
  361. ** These macros are available to C programmers only.
  362. **
  363. ***************************************************************************/
  364.  
  365. #ifndef MUI_NOSHORTCUTS
  366.  
  367.  
  368.  
  369. /***************************************************************************
  370. **
  371. ** Object Generation
  372. ** -----------------
  373. **
  374. ** The xxxObject (and xChilds) macros generate new instances of MUI classes.
  375. ** Every xxxObject can be followed by tagitems specifying initial create
  376. ** time attributes for the new object and must be terminated with the
  377. ** End macro:
  378. **
  379. ** obj = StringObject,
  380. **          MUIA_String_Contents, "foo",
  381. **          MUIA_String_MaxLen  , 40,
  382. **          End;
  383. **
  384. ** With the Child, SubWindow and WindowContents shortcuts you can
  385. ** construct a complete GUI within one command:
  386. **
  387. ** app = ApplicationObject,
  388. **
  389. **          ...
  390. **
  391. **          SubWindow, WindowObject,
  392. **             WindowContents, VGroup,
  393. **                Child, String("foo",40),
  394. **                Child, String("bar",50),
  395. **                Child, HGroup,
  396. **                   Child, CheckMark(TRUE),
  397. **                   Child, CheckMark(FALSE),
  398. **                   End,
  399. **                End,
  400. **             End,
  401. **
  402. **          SubWindow, WindowObject,
  403. **             WindowContents, HGroup,
  404. **                Child, ...,
  405. **                Child, ...,
  406. **                End,
  407. **             End,
  408. **
  409. **          ...
  410. **
  411. **          End;
  412. **
  413. ***************************************************************************/
  414.  
  415. #define MenustripObject   MUI_NewObject(MUIC_Menustrip
  416. #define MenuObject        MUI_NewObject(MUIC_Menu
  417. #define MenuObjectT(name) MUI_NewObject(MUIC_Menu,MUIA_Menu_Title,name
  418. #define MenuitemObject    MUI_NewObject(MUIC_Menuitem
  419. #define WindowObject      MUI_NewObject(MUIC_Window
  420. #define ImageObject       MUI_NewObject(MUIC_Image
  421. #define BitmapObject      MUI_NewObject(MUIC_Bitmap
  422. #define BodychunkObject   MUI_NewObject(MUIC_Bodychunk
  423. #define NotifyObject      MUI_NewObject(MUIC_Notify
  424. #define ApplicationObject MUI_NewObject(MUIC_Application
  425. #define TextObject        MUI_NewObject(MUIC_Text
  426. #define RectangleObject   MUI_NewObject(MUIC_Rectangle
  427. #define ListObject        MUI_NewObject(MUIC_List
  428. #define PropObject        MUI_NewObject(MUIC_Prop
  429. #define StringObject      MUI_NewObject(MUIC_String
  430. #define ScrollbarObject   MUI_NewObject(MUIC_Scrollbar
  431. #define ListviewObject    MUI_NewObject(MUIC_Listview
  432. #define RadioObject       MUI_NewObject(MUIC_Radio
  433. #define VolumelistObject  MUI_NewObject(MUIC_Volumelist
  434. #define FloattextObject   MUI_NewObject(MUIC_Floattext
  435. #define DirlistObject     MUI_NewObject(MUIC_Dirlist
  436. #define SliderObject      MUI_NewObject(MUIC_Slider
  437. #define CycleObject       MUI_NewObject(MUIC_Cycle
  438. #define GaugeObject       MUI_NewObject(MUIC_Gauge
  439. #define ScaleObject       MUI_NewObject(MUIC_Scale
  440. #define BoopsiObject      MUI_NewObject(MUIC_Boopsi
  441. #define ColorfieldObject  MUI_NewObject(MUIC_Colorfield
  442. #define ColorpanelObject  MUI_NewObject(MUIC_Colorpanel
  443. #define ColoradjustObject MUI_NewObject(MUIC_Coloradjust
  444. #define PaletteObject     MUI_NewObject(MUIC_Palette
  445. #define GroupObject       MUI_NewObject(MUIC_Group
  446. #define RegisterObject    MUI_NewObject(MUIC_Register
  447. #define VirtgroupObject   MUI_NewObject(MUIC_Virtgroup
  448. #define ScrollgroupObject MUI_NewObject(MUIC_Scrollgroup
  449. #define PopstringObject   MUI_NewObject(MUIC_Popstring
  450. #define PopobjectObject   MUI_NewObject(MUIC_Popobject
  451. #define PoplistObject     MUI_NewObject(MUIC_Poplist
  452. #define PopaslObject      MUI_NewObject(MUIC_Popasl
  453. #define ScrmodelistObject MUI_NewObject(MUIC_Scrmodelist
  454. #define VGroup            MUI_NewObject(MUIC_Group
  455. #define HGroup            MUI_NewObject(MUIC_Group,MUIA_Group_Horiz,TRUE
  456. #define ColGroup(cols)    MUI_NewObject(MUIC_Group,MUIA_Group_Columns,(cols)
  457. #define RowGroup(rows)    MUI_NewObject(MUIC_Group,MUIA_Group_Rows   ,(rows)
  458. #define PageGroup         MUI_NewObject(MUIC_Group,MUIA_Group_PageMode,TRUE
  459. #define VGroupV           MUI_NewObject(MUIC_Virtgroup
  460. #define HGroupV           MUI_NewObject(MUIC_Virtgroup,MUIA_Group_Horiz,TRUE
  461. #define ColGroupV(cols)   MUI_NewObject(MUIC_Virtgroup,MUIA_Group_Columns,(cols)
  462. #define RowGroupV(rows)   MUI_NewObject(MUIC_Virtgroup,MUIA_Group_Rows   ,(rows)
  463. #define PageGroupV        MUI_NewObject(MUIC_Virtgroup,MUIA_Group_PageMode,TRUE
  464. #define RegisterGroup(t)  MUI_NewObject(MUIC_Register,MUIA_Register_Titles,(t)
  465. #define End               TAG_DONE)
  466.  
  467. #define Child             MUIA_Group_Child
  468. #define SubWindow         MUIA_Application_Window
  469. #define WindowContents    MUIA_Window_RootObject
  470.  
  471.  
  472.  
  473. /***************************************************************************
  474. **
  475. ** Frame Types
  476. ** -----------
  477. **
  478. ** These macros may be used to specify one of MUI's different frame types.
  479. ** Note that every macro consists of one { ti_Tag, ti_Data } pair.
  480. **
  481. ** GroupFrameT() is a special kind of frame that contains a centered
  482. ** title text.
  483. **
  484. ** HGroup, GroupFrameT("Horiz Groups"),
  485. **    Child, RectangleObject, TextFrame  , End,
  486. **    Child, RectangleObject, StringFrame, End,
  487. **    Child, RectangleObject, ButtonFrame, End,
  488. **    Child, RectangleObject, ListFrame  , End,
  489. **    End,
  490. **
  491. ***************************************************************************/
  492.  
  493. #define NoFrame          MUIA_Frame, MUIV_Frame_None
  494. #define ButtonFrame      MUIA_Frame, MUIV_Frame_Button
  495. #define ImageButtonFrame MUIA_Frame, MUIV_Frame_ImageButton
  496. #define TextFrame        MUIA_Frame, MUIV_Frame_Text
  497. #define StringFrame      MUIA_Frame, MUIV_Frame_String
  498. #define ReadListFrame    MUIA_Frame, MUIV_Frame_ReadList
  499. #define InputListFrame   MUIA_Frame, MUIV_Frame_InputList
  500. #define PropFrame        MUIA_Frame, MUIV_Frame_Prop
  501. #define SliderFrame      MUIA_Frame, MUIV_Frame_Slider
  502. #define GaugeFrame       MUIA_Frame, MUIV_Frame_Gauge
  503. #define VirtualFrame     MUIA_Frame, MUIV_Frame_Virtual
  504. #define GroupFrame       MUIA_Frame, MUIV_Frame_Group
  505. #define GroupFrameT(s)   MUIA_Frame, MUIV_Frame_Group, MUIA_FrameTitle, s
  506.  
  507.  
  508.  
  509. /***************************************************************************
  510. **
  511. ** Spacing Macros
  512. ** --------------
  513. **
  514. ***************************************************************************/
  515.  
  516. #define HVSpace           MUI_NewObject(MUIC_Rectangle,TAG_DONE)
  517. #define HSpace(x)         MUI_MakeObject(MUIO_HSpace,x)
  518. #define VSpace(x)         MUI_MakeObject(MUIO_VSpace,x)
  519. #define HCenter(obj)      (HGroup, GroupSpacing(0), Child, HSpace(0), Child, (obj), Child, HSpace(0), End)
  520. #define VCenter(obj)      (VGroup, GroupSpacing(0), Child, VSpace(0), Child, (obj), Child, VSpace(0), End)
  521. #define InnerSpacing(h,v) MUIA_InnerLeft,(h),MUIA_InnerRight,(h),MUIA_InnerTop,(v),MUIA_InnerBottom,(v)
  522. #define GroupSpacing(x)   MUIA_Group_Spacing,x
  523.  
  524.  
  525.  
  526. #ifdef MUI_OBSOLETE
  527.  
  528. /***************************************************************************
  529. **
  530. ** String-Object
  531. ** -------------
  532. **
  533. ** The following macro creates a simple string gadget.
  534. **
  535. ***************************************************************************/
  536.  
  537. #define String(contents,maxlen)\
  538.     StringObject,\
  539.         StringFrame,\
  540.         MUIA_String_MaxLen  , maxlen,\
  541.         MUIA_String_Contents, contents,\
  542.         End
  543.  
  544. #define KeyString(contents,maxlen,controlchar)\
  545.     StringObject,\
  546.         StringFrame,\
  547.         MUIA_ControlChar    , controlchar,\
  548.         MUIA_String_MaxLen  , maxlen,\
  549.         MUIA_String_Contents, contents,\
  550.         End
  551.  
  552. #endif
  553.  
  554.  
  555.  
  556. #ifdef MUI_OBSOLETE
  557.  
  558. /***************************************************************************
  559. **
  560. ** CheckMark-Object
  561. ** ----------------
  562. **
  563. ** The following macro creates a checkmark gadget.
  564. **
  565. ***************************************************************************/
  566.  
  567. #define CheckMark(selected)\
  568.     ImageObject,\
  569.         ImageButtonFrame,\
  570.         MUIA_InputMode        , MUIV_InputMode_Toggle,\
  571.         MUIA_Image_Spec       , MUII_CheckMark,\
  572.         MUIA_Image_FreeVert   , TRUE,\
  573.         MUIA_Selected         , selected,\
  574.         MUIA_Background       , MUII_ButtonBack,\
  575.         MUIA_ShowSelState     , FALSE,\
  576.         End
  577.  
  578. #define KeyCheckMark(selected,control)\
  579.     ImageObject,\
  580.         ImageButtonFrame,\
  581.         MUIA_InputMode        , MUIV_InputMode_Toggle,\
  582.         MUIA_Image_Spec       , MUII_CheckMark,\
  583.         MUIA_Image_FreeVert   , TRUE,\
  584.         MUIA_Selected         , selected,\
  585.         MUIA_Background       , MUII_ButtonBack,\
  586.         MUIA_ShowSelState     , FALSE,\
  587.         MUIA_ControlChar      , control,\
  588.         End
  589.  
  590. #endif
  591.  
  592.  
  593. /***************************************************************************
  594. **
  595. ** Button-Objects
  596. ** --------------
  597. **
  598. ** Note: Use small letters for KeyButtons, e.g.
  599. **       KeyButton("Cancel",'c')  and not  KeyButton("Cancel",'C') !!
  600. **
  601. ***************************************************************************/
  602.  
  603. #define SimpleButton(label) MUI_MakeObject(MUIO_Button,label)
  604.  
  605. #ifdef MUI_OBSOLETE
  606.  
  607. #define KeyButton(name,key)\
  608.     TextObject,\
  609.         ButtonFrame,\
  610.         MUIA_Text_Contents, name,\
  611.         MUIA_Text_PreParse, "\33c",\
  612.         MUIA_Text_HiChar  , key,\
  613.         MUIA_ControlChar  , key,\
  614.         MUIA_InputMode    , MUIV_InputMode_RelVerify,\
  615.         MUIA_Background   , MUII_ButtonBack,\
  616.         End
  617.  
  618. #endif
  619.  
  620.  
  621. #ifdef MUI_OBSOLETE
  622.  
  623. /***************************************************************************
  624. **
  625. ** Cycle-Object
  626. ** ------------
  627. **
  628. ***************************************************************************/
  629.  
  630. #define Cycle(entries)        CycleObject, MUIA_Cycle_Entries, entries, End
  631. #define KeyCycle(entries,key) CycleObject, MUIA_Cycle_Entries, entries, MUIA_ControlChar, key, End
  632.  
  633.  
  634.  
  635. /***************************************************************************
  636. **
  637. ** Radio-Object
  638. ** ------------
  639. **
  640. ***************************************************************************/
  641.  
  642. #define Radio(name,array)\
  643.     RadioObject,\
  644.         GroupFrameT(name),\
  645.         MUIA_Radio_Entries,array,\
  646.         End
  647.  
  648. #define KeyRadio(name,array,key)\
  649.     RadioObject,\
  650.         GroupFrameT(name),\
  651.         MUIA_Radio_Entries,array,\
  652.         MUIA_ControlChar, key,\
  653.         End
  654.  
  655.  
  656.  
  657. /***************************************************************************
  658. **
  659. ** Slider-Object
  660. ** -------------
  661. **
  662. ***************************************************************************/
  663.  
  664.  
  665. #define Slider(min,max,level)\
  666.     SliderObject,\
  667.         MUIA_Slider_Min  , min,\
  668.         MUIA_Slider_Max  , max,\
  669.         MUIA_Slider_Level, level,\
  670.         End
  671.  
  672. #define KeySlider(min,max,level,key)\
  673.     SliderObject,\
  674.         MUIA_Slider_Min  , min,\
  675.         MUIA_Slider_Max  , max,\
  676.         MUIA_Slider_Level, level,\
  677.         MUIA_ControlChar , key,\
  678.         End
  679.  
  680. #endif
  681.  
  682.  
  683.  
  684. /***************************************************************************
  685. **
  686. ** Button to be used for popup objects
  687. **
  688. ***************************************************************************/
  689.  
  690. #define PopButton(img) MUI_MakeObject(MUIO_PopButton,img)
  691.  
  692.  
  693.  
  694. /***************************************************************************
  695. **
  696. ** Labeling Objects
  697. ** ----------------
  698. **
  699. ** Labeling objects, e.g. a group of string gadgets,
  700. **
  701. **   Small: |foo   |
  702. **  Normal: |bar   |
  703. **     Big: |foobar|
  704. **    Huge: |barfoo|
  705. **
  706. ** is done using a 2 column group:
  707. **
  708. ** ColGroup(2),
  709. **     Child, Label2("Small:" ),
  710. **    Child, StringObject, End,
  711. **     Child, Label2("Normal:"),
  712. **    Child, StringObject, End,
  713. **     Child, Label2("Big:"   ),
  714. **    Child, StringObject, End,
  715. **     Child, Label2("Huge:"  ),
  716. **    Child, StringObject, End,
  717. **    End,
  718. **
  719. ** Note that we have three versions of the label macro, depending on
  720. ** the frame type of the right hand object:
  721. **
  722. ** Label1(): For use with standard frames (e.g. checkmarks).
  723. ** Label2(): For use with double high frames (e.g. string gadgets).
  724. ** Label() : For use with objects without a frame.
  725. **
  726. ** These macros ensure that your label will look fine even if the
  727. ** user of your application configured some strange spacing values.
  728. ** If you want to use your own labeling, you'll have to pay attention
  729. ** on this topic yourself.
  730. **
  731. ***************************************************************************/
  732.  
  733. #define Label(label)   MUI_MakeObject(MUIO_Label,label,0)
  734. #define Label1(label)  MUI_MakeObject(MUIO_Label,label,MUIO_Label_SingleFrame)
  735. #define Label2(label)  MUI_MakeObject(MUIO_Label,label,MUIO_Label_DoubleFrame)
  736. #define LLabel(label)  MUI_MakeObject(MUIO_Label,label,MUIO_Label_LeftAligned)
  737. #define LLabel1(label) MUI_MakeObject(MUIO_Label,label,MUIO_Label_LeftAligned|MUIO_Label_SingleFrame)
  738. #define LLabel2(label) MUI_MakeObject(MUIO_Label,label,MUIO_Label_LeftAligned|MUIO_Label_DoubleFrame)
  739.  
  740. #define KeyLabel(label,key)   MUI_MakeObject(MUIO_Label,label,key)
  741. #define KeyLabel1(label,key)  MUI_MakeObject(MUIO_Label,label,MUIO_Label_SingleFrame|(key))
  742. #define KeyLabel2(label,key)  MUI_MakeObject(MUIO_Label,label,MUIO_Label_DoubleFrame|(key))
  743. #define KeyLLabel(label,key)  MUI_MakeObject(MUIO_Label,label,MUIO_Label_LeftAligned|(key))
  744. #define KeyLLabel1(label,key) MUI_MakeObject(MUIO_Label,label,MUIO_Label_LeftAligned|MUIO_Label_SingleFrame|(key))
  745. #define KeyLLabel2(label,key) MUI_MakeObject(MUIO_Label,label,MUIO_Label_LeftAligned|MUIO_Label_DoubleFrame|(key))
  746.  
  747.  
  748.  
  749. /***************************************************************************
  750. **
  751. ** Controlling Objects
  752. ** -------------------
  753. **
  754. ** set() and get() are two short stubs for BOOPSI GetAttr() and SetAttrs()
  755. ** calls:
  756. **
  757. ** {
  758. **    char *x;
  759. **
  760. **    set(obj,MUIA_String_Contents,"foobar");
  761. **    get(obj,MUIA_String_Contents,&x);
  762. **
  763. **    printf("gadget contains '%s'\n",x);
  764. ** }
  765. **
  766. ** nnset() sets an attribute without triggering a possible notification.
  767. **
  768. ***************************************************************************/
  769.  
  770. #define get(obj,attr,store) GetAttr(attr,obj,(ULONG *)store)
  771. #define set(obj,attr,value) SetAttrs(obj,attr,value,TAG_DONE)
  772. #define nnset(obj,attr,value) SetAttrs(obj,MUIA_NoNotify,TRUE,attr,value,TAG_DONE)
  773.  
  774. #define setmutex(obj,n)     set(obj,MUIA_Radio_Active,n)
  775. #define setcycle(obj,n)     set(obj,MUIA_Cycle_Active,n)
  776. #define setstring(obj,s)    set(obj,MUIA_String_Contents,s)
  777. #define setcheckmark(obj,b) set(obj,MUIA_Selected,b)
  778. #define setslider(obj,l)    set(obj,MUIA_Slider_Level,l)
  779.  
  780. #endif /* MUI_NOSHORTCUTS */
  781.  
  782.  
  783. /***************************************************************************
  784. **
  785. ** For Boopsi Image Implementors Only:
  786. **
  787. ** If MUI is using a boopsi image object, it will send a special method
  788. ** immediately after object creation. This method has a parameter structure
  789. ** where the boopsi can fill in its minimum and maximum size and learn if
  790. ** its used in a horizontal or vertical context.
  791. **
  792. ** The boopsi image must use the method id (MUIM_BoopsiQuery) as return
  793. ** value. That's how MUI sees that the method is implemented.
  794. **
  795. ** Note: MUI does not depend on this method. If the boopsi image doesn't
  796. **       implement it, minimum size will be 0 and maximum size unlimited.
  797. **
  798. ***************************************************************************/
  799.  
  800. #define MUIM_BoopsiQuery 0x80427157 /* this is send to the boopsi and */
  801.                                     /* must be used as return value   */
  802.  
  803. struct MUI_BoopsiQuery              /* parameter structure */
  804. {
  805.     ULONG mbq_MethodID;              /* always MUIM_BoopsiQuery */
  806.  
  807.     struct Screen *mbq_Screen;       /* obsolete, use mbq_RenderInfo */
  808.     ULONG mbq_Flags;                 /* read only, see below */
  809.  
  810.     LONG mbq_MinWidth ;              /* write only, fill in min width  */
  811.     LONG mbq_MinHeight;              /* write only, fill in min height */
  812.     LONG mbq_MaxWidth ;              /* write only, fill in max width  */
  813.     LONG mbq_MaxHeight;              /* write only, fill in max height */
  814.     LONG mbq_DefWidth ;              /* write only, fill in def width  */
  815.     LONG mbq_DefHeight;              /* write only, fill in def height */
  816.  
  817.     struct MUI_RenderInfo *mbq_RenderInfo;  /* read only, display context */
  818.  
  819.     /* may grow in future ... */
  820. };
  821.  
  822. #define MUIP_BoopsiQuery MUI_BoopsiQuery  /* old structure name */
  823.  
  824. #define MBQF_HORIZ (1<<0)           /* object used in a horizontal */
  825.                                     /* context (else vertical)     */
  826.  
  827. #define MBQ_MUI_MAXMAX (10000)          /* use this for unlimited MaxWidth/Height */
  828.  
  829.  
  830. /*******************************************/
  831. /* Begin of automatic header file creation */
  832. /*******************************************/
  833.  
  834.  
  835.  
  836.  
  837. /****************************************************************************/
  838. /** Notify                                                                 **/
  839. /****************************************************************************/
  840.  
  841. #ifdef _DCC
  842. extern char MUIC_Notify[];
  843. #else
  844. #define MUIC_Notify "Notify.mui"
  845. #endif
  846.  
  847. /* Methods */
  848.  
  849. #define MUIM_CallHook                  0x8042b96b /* V4  */
  850. #define MUIM_FindUData                 0x8042c196 /* V8  */
  851. #define MUIM_GetUData                  0x8042ed0c /* V8  */
  852. #define MUIM_KillNotify                0x8042d240 /* V4  */
  853. #define MUIM_MultiSet                  0x8042d356 /* V7  */
  854. #define MUIM_NoNotifySet               0x8042216f /* V9  */
  855. #define MUIM_Notify                    0x8042c9cb /* V4  */
  856. #define MUIM_Set                       0x8042549a /* V4  */
  857. #define MUIM_SetAsString               0x80422590 /* V4  */
  858. #define MUIM_SetUData                  0x8042c920 /* V8  */
  859. #define MUIM_WriteLong                 0x80428d86 /* V6  */
  860. #define MUIM_WriteString               0x80424bf4 /* V6  */
  861. struct  MUIP_CallHook                  { ULONG id; struct Hook *Hook; ULONG param1; /* ... */ };
  862. struct  MUIP_FindUData                 { ULONG id; ULONG udata; };
  863. struct  MUIP_GetUData                  { ULONG id; ULONG udata; ULONG attr; ULONG *storage; };
  864. struct  MUIP_KillNotify                { ULONG id; ULONG TrigAttr; };
  865. struct  MUIP_MultiSet                  { ULONG id; ULONG attr; ULONG val; APTR obj; /* ... */ };
  866. struct  MUIP_NoNotifySet               { ULONG id; ULONG attr; char *format; ULONG val; /* ... */ };
  867. struct  MUIP_Notify                    { ULONG id; ULONG TrigAttr; ULONG TrigVal; APTR DestObj; ULONG FollowParams; /* ... */ };
  868. struct  MUIP_Set                       { ULONG id; ULONG attr; ULONG val; };
  869. struct  MUIP_SetAsString               { ULONG id; ULONG attr; char *format; ULONG val; /* ... */ };
  870. struct  MUIP_SetUData                  { ULONG id; ULONG udata; ULONG attr; ULONG val; };
  871. struct  MUIP_WriteLong                 { ULONG id; ULONG val; ULONG *memory; };
  872. struct  MUIP_WriteString               { ULONG id; char *str; char *memory; };
  873.  
  874. /* Attributes */
  875.  
  876. #define MUIA_AppMessage                 0x80421955 /* V5  ..g struct AppMessage * */
  877. #ifdef MUI_OBSOLETE
  878. #define MUIA_HelpFile                   0x80423a6e /* V4  isg STRPTR            */
  879. #endif /* MUI_OBSOLETE */
  880. #define MUIA_HelpLine                   0x8042a825 /* V4  isg LONG              */
  881. #define MUIA_HelpNode                   0x80420b85 /* V4  isg STRPTR            */
  882. #define MUIA_NoNotify                   0x804237f9 /* V7  .s. BOOL              */
  883. #define MUIA_Revision                   0x80427eaa /* V4  ..g LONG              */
  884. #define MUIA_UserData                   0x80420313 /* V4  isg ULONG             */
  885. #define MUIA_Version                    0x80422301 /* V4  ..g LONG              */
  886.  
  887.  
  888.  
  889. /****************************************************************************/
  890. /** Family                                                                 **/
  891. /****************************************************************************/
  892.  
  893. #ifdef _DCC
  894. extern char MUIC_Family[];
  895. #else
  896. #define MUIC_Family "Family.mui"
  897. #endif
  898.  
  899. /* Methods */
  900.  
  901. #define MUIM_Family_AddHead            0x8042e200 /* V8  */
  902. #define MUIM_Family_AddTail            0x8042d752 /* V8  */
  903. #define MUIM_Family_Insert             0x80424d34 /* V8  */
  904. #define MUIM_Family_Remove             0x8042f8a9 /* V8  */
  905. #define MUIM_Family_Sort               0x80421c49 /* V8  */
  906. #define MUIM_Family_Transfer           0x8042c14a /* V8  */
  907. struct  MUIP_Family_AddHead            { ULONG id; Object *obj; };
  908. struct  MUIP_Family_AddTail            { ULONG id; Object *obj; };
  909. struct  MUIP_Family_Insert             { ULONG id; Object *obj; Object *pred; };
  910. struct  MUIP_Family_Remove             { ULONG id; Object *obj; };
  911. struct  MUIP_Family_Sort               { ULONG id; Object *obj[1]; };
  912. struct  MUIP_Family_Transfer           { ULONG id; Object *family; };
  913.  
  914. /* Attributes */
  915.  
  916. #define MUIA_Family_Child               0x8042c696 /* V8  i.. Object *          */
  917.  
  918.  
  919.  
  920. /****************************************************************************/
  921. /** Menustrip                                                              **/
  922. /****************************************************************************/
  923.  
  924. #ifdef _DCC
  925. extern char MUIC_Menustrip[];
  926. #else
  927. #define MUIC_Menustrip "Menustrip.mui"
  928. #endif
  929.  
  930. /* Methods */
  931.  
  932.  
  933. /* Attributes */
  934.  
  935. #define MUIA_Menustrip_Enabled          0x8042815b /* V8  isg BOOL              */
  936.  
  937.  
  938.  
  939. /****************************************************************************/
  940. /** Menu                                                                   **/
  941. /****************************************************************************/
  942.  
  943. #ifdef _DCC
  944. extern char MUIC_Menu[];
  945. #else
  946. #define MUIC_Menu "Menu.mui"
  947. #endif
  948.  
  949. /* Methods */
  950.  
  951.  
  952. /* Attributes */
  953.  
  954. #define MUIA_Menu_Enabled               0x8042ed48 /* V8  isg BOOL              */
  955. #define MUIA_Menu_Title                 0x8042a0e3 /* V8  isg STRPTR            */
  956.  
  957.  
  958.  
  959. /****************************************************************************/
  960. /** Menuitem                                                               **/
  961. /****************************************************************************/
  962.  
  963. #ifdef _DCC
  964. extern char MUIC_Menuitem[];
  965. #else
  966. #define MUIC_Menuitem "Menuitem.mui"
  967. #endif
  968.  
  969. /* Methods */
  970.  
  971.  
  972. /* Attributes */
  973.  
  974. #define MUIA_Menuitem_Checked           0x8042562a /* V8  isg BOOL              */
  975. #define MUIA_Menuitem_Checkit           0x80425ace /* V8  isg BOOL              */
  976. #define MUIA_Menuitem_Enabled           0x8042ae0f /* V8  isg BOOL              */
  977. #define MUIA_Menuitem_Exclude           0x80420bc6 /* V8  isg LONG              */
  978. #define MUIA_Menuitem_Shortcut          0x80422030 /* V8  isg char              */
  979. #define MUIA_Menuitem_Title             0x804218be /* V8  isg STRPTR            */
  980. #define MUIA_Menuitem_Toggle            0x80424d5c /* V8  isg BOOL              */
  981. #define MUIA_Menuitem_Trigger           0x80426f32 /* V8  ..g struct MenuItem * */
  982.  
  983.  
  984.  
  985. /****************************************************************************/
  986. /** Application                                                            **/
  987. /****************************************************************************/
  988.  
  989. #ifdef _DCC
  990. extern char MUIC_Application[];
  991. #else
  992. #define MUIC_Application "Application.mui"
  993. #endif
  994.  
  995. /* Methods */
  996.  
  997. #ifdef MUI_OBSOLETE
  998. #define MUIM_Application_GetMenuCheck  0x8042c0a7 /* V4  */
  999. #endif /* MUI_OBSOLETE */
  1000. #ifdef MUI_OBSOLETE
  1001. #define MUIM_Application_GetMenuState  0x8042a58f /* V4  */
  1002. #endif /* MUI_OBSOLETE */
  1003. #define MUIM_Application_Input         0x8042d0f5 /* V4  */
  1004. #define MUIM_Application_InputBuffered 0x80427e59 /* V4  */
  1005. #define MUIM_Application_Load          0x8042f90d /* V4  */
  1006. #define MUIM_Application_PushMethod    0x80429ef8 /* V4  */
  1007. #define MUIM_Application_ReturnID      0x804276ef /* V4  */
  1008. #define MUIM_Application_Save          0x804227ef /* V4  */
  1009. #ifdef MUI_OBSOLETE
  1010. #define MUIM_Application_SetMenuCheck  0x8042a707 /* V4  */
  1011. #endif /* MUI_OBSOLETE */
  1012. #ifdef MUI_OBSOLETE
  1013. #define MUIM_Application_SetMenuState  0x80428bef /* V4  */
  1014. #endif /* MUI_OBSOLETE */
  1015. #define MUIM_Application_ShowHelp      0x80426479 /* V4  */
  1016. struct  MUIP_Application_GetMenuCheck  { ULONG id; ULONG MenuID; };
  1017. struct  MUIP_Application_GetMenuState  { ULONG id; ULONG MenuID; };
  1018. struct  MUIP_Application_Input         { ULONG id; LONGBITS *signal; };
  1019. struct  MUIP_Application_Load          { ULONG id; STRPTR name; };
  1020. struct  MUIP_Application_PushMethod    { ULONG id; Object *dest; LONG count; /* ... */ };
  1021. struct  MUIP_Application_ReturnID      { ULONG id; ULONG retid; };
  1022. struct  MUIP_Application_Save          { ULONG id; STRPTR name; };
  1023. struct  MUIP_Application_SetMenuCheck  { ULONG id; ULONG MenuID; LONG stat; };
  1024. struct  MUIP_Application_SetMenuState  { ULONG id; ULONG MenuID; LONG stat; };
  1025. struct  MUIP_Application_ShowHelp      { ULONG id; Object *window; char *name; char *node; LONG line; };
  1026.  
  1027. /* Attributes */
  1028.  
  1029. #define MUIA_Application_Active         0x804260ab /* V4  isg BOOL              */
  1030. #define MUIA_Application_Author         0x80424842 /* V4  i.g STRPTR            */
  1031. #define MUIA_Application_Base           0x8042e07a /* V4  i.g STRPTR            */
  1032. #define MUIA_Application_Broker         0x8042dbce /* V4  ..g Broker *          */
  1033. #define MUIA_Application_BrokerHook     0x80428f4b /* V4  isg struct Hook *     */
  1034. #define MUIA_Application_BrokerPort     0x8042e0ad /* V6  ..g struct MsgPort *  */
  1035. #define MUIA_Application_BrokerPri      0x8042c8d0 /* V6  i.g LONG              */
  1036. #define MUIA_Application_Commands       0x80428648 /* V4  isg struct MUI_Command * */
  1037. #define MUIA_Application_Copyright      0x8042ef4d /* V4  i.g STRPTR            */
  1038. #define MUIA_Application_Description    0x80421fc6 /* V4  i.g STRPTR            */
  1039. #define MUIA_Application_DiskObject     0x804235cb /* V4  isg struct DiskObject * */
  1040. #define MUIA_Application_DoubleStart    0x80423bc6 /* V4  ..g BOOL              */
  1041. #define MUIA_Application_DropObject     0x80421266 /* V5  is. Object *          */
  1042. #define MUIA_Application_ForceQuit      0x804257df /* V8  ..g BOOL              */
  1043. #define MUIA_Application_HelpFile       0x804293f4 /* V8  isg STRPTR            */
  1044. #define MUIA_Application_Iconified      0x8042a07f /* V4  .sg BOOL              */
  1045. #ifdef MUI_OBSOLETE
  1046. #define MUIA_Application_Menu           0x80420e1f /* V4  i.g struct NewMenu *  */
  1047. #endif /* MUI_OBSOLETE */
  1048. #define MUIA_Application_MenuAction     0x80428961 /* V4  ..g ULONG             */
  1049. #define MUIA_Application_MenuHelp       0x8042540b /* V4  ..g ULONG             */
  1050. #define MUIA_Application_Menustrip      0x804252d9 /* V8  i.. Object *          */
  1051. #define MUIA_Application_RexxHook       0x80427c42 /* V7  isg struct Hook *     */
  1052. #define MUIA_Application_RexxMsg        0x8042fd88 /* V4  ..g struct RxMsg *    */
  1053. #define MUIA_Application_RexxString     0x8042d711 /* V4  .s. STRPTR            */
  1054. #define MUIA_Application_SingleTask     0x8042a2c8 /* V4  i.. BOOL              */
  1055. #define MUIA_Application_Sleep          0x80425711 /* V4  .s. BOOL              */
  1056. #define MUIA_Application_Title          0x804281b8 /* V4  i.g STRPTR            */
  1057. #define MUIA_Application_UseCommodities 0x80425ee5 /* V10 i.. BOOL              */
  1058. #define MUIA_Application_UseRexx        0x80422387 /* V10 i.. BOOL              */
  1059. #define MUIA_Application_Version        0x8042b33f /* V4  i.g STRPTR            */
  1060. #define MUIA_Application_Window         0x8042bfe0 /* V4  i.. Object *          */
  1061.  
  1062.  
  1063.  
  1064. /****************************************************************************/
  1065. /** Window                                                                 **/
  1066. /****************************************************************************/
  1067.  
  1068. #ifdef _DCC
  1069. extern char MUIC_Window[];
  1070. #else
  1071. #define MUIC_Window "Window.mui"
  1072. #endif
  1073.  
  1074. /* Methods */
  1075.  
  1076. #ifdef MUI_OBSOLETE
  1077. #define MUIM_Window_GetMenuCheck       0x80420414 /* V4  */
  1078. #endif /* MUI_OBSOLETE */
  1079. #ifdef MUI_OBSOLETE
  1080. #define MUIM_Window_GetMenuState       0x80420d2f /* V4  */
  1081. #endif /* MUI_OBSOLETE */
  1082. #define MUIM_Window_ScreenToBack       0x8042913d /* V4  */
  1083. #define MUIM_Window_ScreenToFront      0x804227a4 /* V4  */
  1084. #define MUIM_Window_SetCycleChain      0x80426510 /* V4  */
  1085. #ifdef MUI_OBSOLETE
  1086. #define MUIM_Window_SetMenuCheck       0x80422243 /* V4  */
  1087. #endif /* MUI_OBSOLETE */
  1088. #ifdef MUI_OBSOLETE
  1089. #define MUIM_Window_SetMenuState       0x80422b5e /* V4  */
  1090. #endif /* MUI_OBSOLETE */
  1091. #define MUIM_Window_ToBack             0x8042152e /* V4  */
  1092. #define MUIM_Window_ToFront            0x8042554f /* V4  */
  1093. struct  MUIP_Window_GetMenuCheck       { ULONG id; ULONG MenuID; };
  1094. struct  MUIP_Window_GetMenuState       { ULONG id; ULONG MenuID; };
  1095. struct  MUIP_Window_SetCycleChain      { ULONG id; Object *obj[1]; };
  1096. struct  MUIP_Window_SetMenuCheck       { ULONG id; ULONG MenuID; LONG stat; };
  1097. struct  MUIP_Window_SetMenuState       { ULONG id; ULONG MenuID; LONG stat; };
  1098.  
  1099. /* Attributes */
  1100.  
  1101. #define MUIA_Window_Activate            0x80428d2f /* V4  isg BOOL              */
  1102. #define MUIA_Window_ActiveObject        0x80427925 /* V4  .sg Object *          */
  1103. #define MUIA_Window_AltHeight           0x8042cce3 /* V4  i.g LONG              */
  1104. #define MUIA_Window_AltLeftEdge         0x80422d65 /* V4  i.g LONG              */
  1105. #define MUIA_Window_AltTopEdge          0x8042e99b /* V4  i.g LONG              */
  1106. #define MUIA_Window_AltWidth            0x804260f4 /* V4  i.g LONG              */
  1107. #define MUIA_Window_AppWindow           0x804280cf /* V5  i.. BOOL              */
  1108. #define MUIA_Window_Backdrop            0x8042c0bb /* V4  i.. BOOL              */
  1109. #define MUIA_Window_Borderless          0x80429b79 /* V4  i.. BOOL              */
  1110. #define MUIA_Window_CloseGadget         0x8042a110 /* V4  i.. BOOL              */
  1111. #define MUIA_Window_CloseRequest        0x8042e86e /* V4  ..g BOOL              */
  1112. #define MUIA_Window_DefaultObject       0x804294d7 /* V4  isg Object *          */
  1113. #define MUIA_Window_DepthGadget         0x80421923 /* V4  i.. BOOL              */
  1114. #define MUIA_Window_DragBar             0x8042045d /* V4  i.. BOOL              */
  1115. #define MUIA_Window_FancyDrawing        0x8042bd0e /* V8  isg BOOL              */
  1116. #define MUIA_Window_Height              0x80425846 /* V4  i.g LONG              */
  1117. #define MUIA_Window_ID                  0x804201bd /* V4  isg ULONG             */
  1118. #define MUIA_Window_InputEvent          0x804247d8 /* V4  ..g struct InputEvent * */
  1119. #define MUIA_Window_LeftEdge            0x80426c65 /* V4  i.g LONG              */
  1120. #ifdef MUI_OBSOLETE
  1121. #define MUIA_Window_Menu                0x8042db94 /* V4  i.. struct NewMenu *  */
  1122. #endif /* MUI_OBSOLETE */
  1123. #define MUIA_Window_MenuAction          0x80427521 /* V8  isg ULONG             */
  1124. #define MUIA_Window_Menustrip           0x8042855e /* V8  i.. Object *          */
  1125. #define MUIA_Window_MouseObject         0x8042bf9b /* V10 ..g Object *          */
  1126. #define MUIA_Window_NeedsMouseObject    0x8042372a /* V10 i.. BOOL              */
  1127. #define MUIA_Window_NoMenus             0x80429df5 /* V4  is. BOOL              */
  1128. #define MUIA_Window_Open                0x80428aa0 /* V4  .sg BOOL              */
  1129. #define MUIA_Window_PublicScreen        0x804278e4 /* V6  isg STRPTR            */
  1130. #define MUIA_Window_RefWindow           0x804201f4 /* V4  is. Object *          */
  1131. #define MUIA_Window_RootObject          0x8042cba5 /* V4  i.. Object *          */
  1132. #define MUIA_Window_Screen              0x8042df4f /* V4  isg struct Screen *   */
  1133. #define MUIA_Window_ScreenTitle         0x804234b0 /* V5  isg STRPTR            */
  1134. #define MUIA_Window_SizeGadget          0x8042e33d /* V4  i.. BOOL              */
  1135. #define MUIA_Window_SizeRight           0x80424780 /* V4  i.. BOOL              */
  1136. #define MUIA_Window_Sleep               0x8042e7db /* V4  .sg BOOL              */
  1137. #define MUIA_Window_Title               0x8042ad3d /* V4  isg STRPTR            */
  1138. #define MUIA_Window_TopEdge             0x80427c66 /* V4  i.g LONG              */
  1139. #define MUIA_Window_Width               0x8042dcae /* V4  i.g LONG              */
  1140. #define MUIA_Window_Window              0x80426a42 /* V4  ..g struct Window *   */
  1141.  
  1142. #define MUIV_Window_ActiveObject_None 0
  1143. #define MUIV_Window_ActiveObject_Next -1
  1144. #define MUIV_Window_ActiveObject_Prev -2
  1145. #define MUIV_Window_AltHeight_MinMax(p) (0-(p))
  1146. #define MUIV_Window_AltHeight_Visible(p) (-100-(p))
  1147. #define MUIV_Window_AltHeight_Screen(p) (-200-(p))
  1148. #define MUIV_Window_AltHeight_Scaled -1000
  1149. #define MUIV_Window_AltLeftEdge_Centered -1
  1150. #define MUIV_Window_AltLeftEdge_Moused -2
  1151. #define MUIV_Window_AltLeftEdge_NoChange -1000
  1152. #define MUIV_Window_AltTopEdge_Centered -1
  1153. #define MUIV_Window_AltTopEdge_Moused -2
  1154. #define MUIV_Window_AltTopEdge_Delta(p) (-3-(p))
  1155. #define MUIV_Window_AltTopEdge_NoChange -1000
  1156. #define MUIV_Window_AltWidth_MinMax(p) (0-(p))
  1157. #define MUIV_Window_AltWidth_Visible(p) (-100-(p))
  1158. #define MUIV_Window_AltWidth_Screen(p) (-200-(p))
  1159. #define MUIV_Window_AltWidth_Scaled -1000
  1160. #define MUIV_Window_Height_MinMax(p) (0-(p))
  1161. #define MUIV_Window_Height_Visible(p) (-100-(p))
  1162. #define MUIV_Window_Height_Screen(p) (-200-(p))
  1163. #define MUIV_Window_Height_Scaled -1000
  1164. #define MUIV_Window_Height_Default -1001
  1165. #define MUIV_Window_LeftEdge_Centered -1
  1166. #define MUIV_Window_LeftEdge_Moused -2
  1167. #ifdef MUI_OBSOLETE
  1168. #define MUIV_Window_Menu_NoMenu -1
  1169. #endif /* MUI_OBSOLETE */
  1170. #define MUIV_Window_TopEdge_Centered -1
  1171. #define MUIV_Window_TopEdge_Moused -2
  1172. #define MUIV_Window_TopEdge_Delta(p) (-3-(p))
  1173. #define MUIV_Window_Width_MinMax(p) (0-(p))
  1174. #define MUIV_Window_Width_Visible(p) (-100-(p))
  1175. #define MUIV_Window_Width_Screen(p) (-200-(p))
  1176. #define MUIV_Window_Width_Scaled -1000
  1177. #define MUIV_Window_Width_Default -1001
  1178.  
  1179.  
  1180. /****************************************************************************/
  1181. /** Area                                                                   **/
  1182. /****************************************************************************/
  1183.  
  1184. #ifdef _DCC
  1185. extern char MUIC_Area[];
  1186. #else
  1187. #define MUIC_Area "Area.mui"
  1188. #endif
  1189.  
  1190. /* Methods */
  1191.  
  1192. #define MUIM_AskMinMax                 0x80423874 /* Custom Class */ /* V4  */
  1193. #define MUIM_Cleanup                   0x8042d985 /* Custom Class */ /* V4  */
  1194. #define MUIM_Draw                      0x80426f3f /* Custom Class */ /* V4  */
  1195. #define MUIM_HandleInput               0x80422a1a /* Custom Class */ /* V4  */
  1196. #define MUIM_Hide                      0x8042f20f /* Custom Class */ /* V4  */
  1197. #define MUIM_Setup                     0x80428354 /* Custom Class */ /* V4  */
  1198. #define MUIM_Show                      0x8042cc84 /* Custom Class */ /* V4  */
  1199. struct  MUIP_AskMinMax                 { ULONG id; struct MUI_MinMax *MinMaxInfo; }; /* Custom Class */
  1200. struct  MUIP_Draw                      { ULONG id; ULONG flags; }; /* Custom Class */
  1201. struct  MUIP_HandleInput               { ULONG id; struct IntuiMessage *imsg; LONG muikey; }; /* Custom Class */
  1202. struct  MUIP_Setup                     { ULONG id; struct MUI_RenderInfo *RenderInfo; }; /* Custom Class */
  1203.  
  1204. /* Attributes */
  1205.  
  1206. #define MUIA_ApplicationObject          0x8042d3ee /* V4  ..g Object *          */
  1207. #define MUIA_Background                 0x8042545b /* V4  is. LONG              */
  1208. #define MUIA_BottomEdge                 0x8042e552 /* V4  ..g LONG              */
  1209. #define MUIA_ControlChar                0x8042120b /* V4  i.. char              */
  1210. #define MUIA_Disabled                   0x80423661 /* V4  isg BOOL              */
  1211. #define MUIA_ExportID                   0x8042d76e /* V4  isg LONG              */
  1212. #define MUIA_FixHeight                  0x8042a92b /* V4  i.. LONG              */
  1213. #define MUIA_FixHeightTxt               0x804276f2 /* V4  i.. LONG              */
  1214. #define MUIA_FixWidth                   0x8042a3f1 /* V4  i.. LONG              */
  1215. #define MUIA_FixWidthTxt                0x8042d044 /* V4  i.. STRPTR            */
  1216. #define MUIA_Font                       0x8042be50 /* V4  i.g struct TextFont * */
  1217. #define MUIA_Frame                      0x8042ac64 /* V4  i.. LONG              */
  1218. #define MUIA_FramePhantomHoriz          0x8042ed76 /* V4  i.. BOOL              */
  1219. #define MUIA_FrameTitle                 0x8042d1c7 /* V4  i.. STRPTR            */
  1220. #define MUIA_Height                     0x80423237 /* V4  ..g LONG              */
  1221. #define MUIA_HorizWeight                0x80426db9 /* V4  i.. WORD              */
  1222. #define MUIA_InnerBottom                0x8042f2c0 /* V4  i.. LONG              */
  1223. #define MUIA_InnerLeft                  0x804228f8 /* V4  i.. LONG              */
  1224. #define MUIA_InnerRight                 0x804297ff /* V4  i.. LONG              */
  1225. #define MUIA_InnerTop                   0x80421eb6 /* V4  i.. LONG              */
  1226. #define MUIA_InputMode                  0x8042fb04 /* V4  i.. LONG              */
  1227. #define MUIA_LeftEdge                   0x8042bec6 /* V4  ..g LONG              */
  1228. #define MUIA_Pressed                    0x80423535 /* V4  ..g BOOL              */
  1229. #define MUIA_RightEdge                  0x8042ba82 /* V4  ..g LONG              */
  1230. #define MUIA_Selected                   0x8042654b /* V4  isg BOOL              */
  1231. #define MUIA_ShowMe                     0x80429ba8 /* V4  isg BOOL              */
  1232. #define MUIA_ShowSelState               0x8042caac /* V4  i.. BOOL              */
  1233. #define MUIA_Timer                      0x80426435 /* V4  ..g LONG              */
  1234. #define MUIA_TopEdge                    0x8042509b /* V4  ..g LONG              */
  1235. #define MUIA_VertWeight                 0x804298d0 /* V4  i.. WORD              */
  1236. #define MUIA_Weight                     0x80421d1f /* V4  i.. WORD              */
  1237. #define MUIA_Width                      0x8042b59c /* V4  ..g LONG              */
  1238. #define MUIA_Window                     0x80421591 /* V4  ..g struct Window *   */
  1239. #define MUIA_WindowObject               0x8042669e /* V4  ..g Object *          */
  1240.  
  1241. #define MUIV_Font_Inherit 0
  1242. #define MUIV_Font_Normal -1
  1243. #define MUIV_Font_List -2
  1244. #define MUIV_Font_Tiny -3
  1245. #define MUIV_Font_Fixed -4
  1246. #define MUIV_Font_Title -5
  1247. #define MUIV_Font_Big -6
  1248. #define MUIV_Frame_None 0
  1249. #define MUIV_Frame_Button 1
  1250. #define MUIV_Frame_ImageButton 2
  1251. #define MUIV_Frame_Text 3
  1252. #define MUIV_Frame_String 4
  1253. #define MUIV_Frame_ReadList 5
  1254. #define MUIV_Frame_InputList 6
  1255. #define MUIV_Frame_Prop 7
  1256. #define MUIV_Frame_Gauge 8
  1257. #define MUIV_Frame_Group 9
  1258. #define MUIV_Frame_PopUp 10
  1259. #define MUIV_Frame_Virtual 11
  1260. #define MUIV_Frame_Slider 12
  1261. #define MUIV_Frame_Count 13
  1262. #define MUIV_InputMode_None 0
  1263. #define MUIV_InputMode_RelVerify 1
  1264. #define MUIV_InputMode_Immediate 2
  1265. #define MUIV_InputMode_Toggle 3
  1266.  
  1267.  
  1268. /****************************************************************************/
  1269. /** Rectangle                                                              **/
  1270. /****************************************************************************/
  1271.  
  1272. #ifdef _DCC
  1273. extern char MUIC_Rectangle[];
  1274. #else
  1275. #define MUIC_Rectangle "Rectangle.mui"
  1276. #endif
  1277.  
  1278. /* Attributes */
  1279.  
  1280. #define MUIA_Rectangle_HBar             0x8042c943 /* V7  i.g BOOL              */
  1281. #define MUIA_Rectangle_VBar             0x80422204 /* V7  i.g BOOL              */
  1282.  
  1283.  
  1284.  
  1285. /****************************************************************************/
  1286. /** Image                                                                  **/
  1287. /****************************************************************************/
  1288.  
  1289. #ifdef _DCC
  1290. extern char MUIC_Image[];
  1291. #else
  1292. #define MUIC_Image "Image.mui"
  1293. #endif
  1294.  
  1295. /* Attributes */
  1296.  
  1297. #define MUIA_Image_FontMatch            0x8042815d /* V4  i.. BOOL              */
  1298. #define MUIA_Image_FontMatchHeight      0x80429f26 /* V4  i.. BOOL              */
  1299. #define MUIA_Image_FontMatchWidth       0x804239bf /* V4  i.. BOOL              */
  1300. #define MUIA_Image_FreeHoriz            0x8042da84 /* V4  i.. BOOL              */
  1301. #define MUIA_Image_FreeVert             0x8042ea28 /* V4  i.. BOOL              */
  1302. #define MUIA_Image_OldImage             0x80424f3d /* V4  i.. struct Image *    */
  1303. #define MUIA_Image_Spec                 0x804233d5 /* V4  i.. char *            */
  1304. #define MUIA_Image_State                0x8042a3ad /* V4  is. LONG              */
  1305.  
  1306.  
  1307.  
  1308. /****************************************************************************/
  1309. /** Bitmap                                                                 **/
  1310. /****************************************************************************/
  1311.  
  1312. #ifdef _DCC
  1313. extern char MUIC_Bitmap[];
  1314. #else
  1315. #define MUIC_Bitmap "Bitmap.mui"
  1316. #endif
  1317.  
  1318. /* Attributes */
  1319.  
  1320. #define MUIA_Bitmap_Bitmap              0x804279bd /* V8  isg struct BitMap *   */
  1321. #define MUIA_Bitmap_Height              0x80421560 /* V8  isg LONG              */
  1322. #define MUIA_Bitmap_MappingTable        0x8042e23d /* V8  isg UBYTE *           */
  1323. #define MUIA_Bitmap_SourceColors        0x80425360 /* V8  isg ULONG *           */
  1324. #define MUIA_Bitmap_Transparent         0x80422805 /* V8  isg LONG              */
  1325. #define MUIA_Bitmap_Width               0x8042eb3a /* V8  isg LONG              */
  1326.  
  1327.  
  1328.  
  1329. /****************************************************************************/
  1330. /** Bodychunk                                                              **/
  1331. /****************************************************************************/
  1332.  
  1333. #ifdef _DCC
  1334. extern char MUIC_Bodychunk[];
  1335. #else
  1336. #define MUIC_Bodychunk "Bodychunk.mui"
  1337. #endif
  1338.  
  1339. /* Attributes */
  1340.  
  1341. #define MUIA_Bodychunk_Body             0x8042ca67 /* V8  isg UBYTE *           */
  1342. #define MUIA_Bodychunk_Compression      0x8042de5f /* V8  isg UBYTE             */
  1343. #define MUIA_Bodychunk_Depth            0x8042c392 /* V8  isg LONG              */
  1344. #define MUIA_Bodychunk_Masking          0x80423b0e /* V8  isg UBYTE             */
  1345.  
  1346.  
  1347.  
  1348. /****************************************************************************/
  1349. /** Text                                                                   **/
  1350. /****************************************************************************/
  1351.  
  1352. #ifdef _DCC
  1353. extern char MUIC_Text[];
  1354. #else
  1355. #define MUIC_Text "Text.mui"
  1356. #endif
  1357.  
  1358. /* Attributes */
  1359.  
  1360. #define MUIA_Text_Contents              0x8042f8dc /* V4  isg STRPTR            */
  1361. #define MUIA_Text_HiChar                0x804218ff /* V4  i.. char              */
  1362. #define MUIA_Text_PreParse              0x8042566d /* V4  isg STRPTR            */
  1363. #define MUIA_Text_SetMax                0x80424d0a /* V4  i.. BOOL              */
  1364. #define MUIA_Text_SetMin                0x80424e10 /* V4  i.. BOOL              */
  1365.  
  1366.  
  1367.  
  1368. /****************************************************************************/
  1369. /** String                                                                 **/
  1370. /****************************************************************************/
  1371.  
  1372. #ifdef _DCC
  1373. extern char MUIC_String[];
  1374. #else
  1375. #define MUIC_String "String.mui"
  1376. #endif
  1377.  
  1378. /* Attributes */
  1379.  
  1380. #define MUIA_String_Accept              0x8042e3e1 /* V4  isg STRPTR            */
  1381. #define MUIA_String_Acknowledge         0x8042026c /* V4  ..g STRPTR            */
  1382. #define MUIA_String_AttachedList        0x80420fd2 /* V4  i.. Object *          */
  1383. #define MUIA_String_BufferPos           0x80428b6c /* V4  .sg LONG              */
  1384. #define MUIA_String_Contents            0x80428ffd /* V4  isg STRPTR            */
  1385. #define MUIA_String_DisplayPos          0x8042ccbf /* V4  .sg LONG              */
  1386. #define MUIA_String_EditHook            0x80424c33 /* V7  isg struct Hook *     */
  1387. #define MUIA_String_Format              0x80427484 /* V4  i.g LONG              */
  1388. #define MUIA_String_Integer             0x80426e8a /* V4  isg ULONG             */
  1389. #define MUIA_String_MaxLen              0x80424984 /* V4  i.g LONG              */
  1390. #define MUIA_String_Reject              0x8042179c /* V4  isg STRPTR            */
  1391. #define MUIA_String_Secret              0x80428769 /* V4  i.g BOOL              */
  1392.  
  1393. #define MUIV_String_Format_Left 0
  1394. #define MUIV_String_Format_Center 1
  1395. #define MUIV_String_Format_Right 2
  1396.  
  1397.  
  1398. /****************************************************************************/
  1399. /** Prop                                                                   **/
  1400. /****************************************************************************/
  1401.  
  1402. #ifdef _DCC
  1403. extern char MUIC_Prop[];
  1404. #else
  1405. #define MUIC_Prop "Prop.mui"
  1406. #endif
  1407.  
  1408. /* Attributes */
  1409.  
  1410. #define MUIA_Prop_Entries               0x8042fbdb /* V4  isg LONG              */
  1411. #define MUIA_Prop_First                 0x8042d4b2 /* V4  isg LONG              */
  1412. #define MUIA_Prop_Horiz                 0x8042f4f3 /* V4  i.g BOOL              */
  1413. #define MUIA_Prop_Slider                0x80429c3a /* V4  isg BOOL              */
  1414. #define MUIA_Prop_Visible               0x8042fea6 /* V4  isg LONG              */
  1415.  
  1416.  
  1417.  
  1418. /****************************************************************************/
  1419. /** Gauge                                                                  **/
  1420. /****************************************************************************/
  1421.  
  1422. #ifdef _DCC
  1423. extern char MUIC_Gauge[];
  1424. #else
  1425. #define MUIC_Gauge "Gauge.mui"
  1426. #endif
  1427.  
  1428. /* Attributes */
  1429.  
  1430. #define MUIA_Gauge_Current              0x8042f0dd /* V4  isg LONG              */
  1431. #define MUIA_Gauge_Divide               0x8042d8df /* V4  isg BOOL              */
  1432. #define MUIA_Gauge_Horiz                0x804232dd /* V4  i.. BOOL              */
  1433. #define MUIA_Gauge_InfoText             0x8042bf15 /* V7  isg char *            */
  1434. #define MUIA_Gauge_Max                  0x8042bcdb /* V4  isg LONG              */
  1435.  
  1436.  
  1437.  
  1438. /****************************************************************************/
  1439. /** Scale                                                                  **/
  1440. /****************************************************************************/
  1441.  
  1442. #ifdef _DCC
  1443. extern char MUIC_Scale[];
  1444. #else
  1445. #define MUIC_Scale "Scale.mui"
  1446. #endif
  1447.  
  1448. /* Attributes */
  1449.  
  1450. #define MUIA_Scale_Horiz                0x8042919a /* V4  isg BOOL              */
  1451.  
  1452.  
  1453.  
  1454. /****************************************************************************/
  1455. /** Boopsi                                                                 **/
  1456. /****************************************************************************/
  1457.  
  1458. #ifdef _DCC
  1459. extern char MUIC_Boopsi[];
  1460. #else
  1461. #define MUIC_Boopsi "Boopsi.mui"
  1462. #endif
  1463.  
  1464. /* Attributes */
  1465.  
  1466. #define MUIA_Boopsi_Class               0x80426999 /* V4  isg struct IClass *   */
  1467. #define MUIA_Boopsi_ClassID             0x8042bfa3 /* V4  isg char *            */
  1468. #define MUIA_Boopsi_MaxHeight           0x8042757f /* V4  isg ULONG             */
  1469. #define MUIA_Boopsi_MaxWidth            0x8042bcb1 /* V4  isg ULONG             */
  1470. #define MUIA_Boopsi_MinHeight           0x80422c93 /* V4  isg ULONG             */
  1471. #define MUIA_Boopsi_MinWidth            0x80428fb2 /* V4  isg ULONG             */
  1472. #define MUIA_Boopsi_Object              0x80420178 /* V4  ..g Object *          */
  1473. #define MUIA_Boopsi_Remember            0x8042f4bd /* V4  i.. ULONG             */
  1474. #define MUIA_Boopsi_Smart               0x8042b8d7 /* V9  i.. BOOL              */
  1475. #define MUIA_Boopsi_TagDrawInfo         0x8042bae7 /* V4  isg ULONG             */
  1476. #define MUIA_Boopsi_TagScreen           0x8042bc71 /* V4  isg ULONG             */
  1477. #define MUIA_Boopsi_TagWindow           0x8042e11d /* V4  isg ULONG             */
  1478.  
  1479.  
  1480.  
  1481. /****************************************************************************/
  1482. /** Colorfield                                                             **/
  1483. /****************************************************************************/
  1484.  
  1485. #ifdef _DCC
  1486. extern char MUIC_Colorfield[];
  1487. #else
  1488. #define MUIC_Colorfield "Colorfield.mui"
  1489. #endif
  1490.  
  1491. /* Attributes */
  1492.  
  1493. #define MUIA_Colorfield_Blue            0x8042d3b0 /* V4  isg ULONG             */
  1494. #define MUIA_Colorfield_Green           0x80424466 /* V4  isg ULONG             */
  1495. #define MUIA_Colorfield_Pen             0x8042713a /* V4  ..g ULONG             */
  1496. #define MUIA_Colorfield_Red             0x804279f6 /* V4  isg ULONG             */
  1497. #define MUIA_Colorfield_RGB             0x8042677a /* V4  isg ULONG *           */
  1498.  
  1499.  
  1500.  
  1501. /****************************************************************************/
  1502. /** List                                                                   **/
  1503. /****************************************************************************/
  1504.  
  1505. #ifdef _DCC
  1506. extern char MUIC_List[];
  1507. #else
  1508. #define MUIC_List "List.mui"
  1509. #endif
  1510.  
  1511. /* Methods */
  1512.  
  1513. #define MUIM_List_Clear                0x8042ad89 /* V4  */
  1514. #define MUIM_List_Exchange             0x8042468c /* V4  */
  1515. #define MUIM_List_GetEntry             0x804280ec /* V4  */
  1516. #define MUIM_List_Insert               0x80426c87 /* V4  */
  1517. #define MUIM_List_InsertSingle         0x804254d5 /* V7  */
  1518. #define MUIM_List_Jump                 0x8042baab /* V4  */
  1519. #define MUIM_List_Move                 0x804253c2 /* V9  */
  1520. #define MUIM_List_NextSelected         0x80425f17 /* V6  */
  1521. #define MUIM_List_Redraw               0x80427993 /* V4  */
  1522. #define MUIM_List_Remove               0x8042647e /* V4  */
  1523. #define MUIM_List_Select               0x804252d8 /* V4  */
  1524. #define MUIM_List_Sort                 0x80422275 /* V4  */
  1525. struct  MUIP_List_Exchange             { ULONG id; LONG pos1; LONG pos2; };
  1526. struct  MUIP_List_GetEntry             { ULONG id; LONG pos; APTR *entry; };
  1527. struct  MUIP_List_Insert               { ULONG id; APTR *entries; LONG count; LONG pos; };
  1528. struct  MUIP_List_InsertSingle         { ULONG id; APTR entry; LONG pos; };
  1529. struct  MUIP_List_Jump                 { ULONG id; LONG pos; };
  1530. struct  MUIP_List_Move                 { ULONG id; LONG from; LONG to; };
  1531. struct  MUIP_List_NextSelected         { ULONG id; LONG *pos; };
  1532. struct  MUIP_List_Redraw               { ULONG id; LONG pos; };
  1533. struct  MUIP_List_Remove               { ULONG id; LONG pos; };
  1534. struct  MUIP_List_Select               { ULONG id; LONG pos; LONG seltype; LONG *state; };
  1535.  
  1536. /* Attributes */
  1537.  
  1538. #define MUIA_List_Active                0x8042391c /* V4  isg LONG              */
  1539. #define MUIA_List_AdjustHeight          0x8042850d /* V4  i.. BOOL              */
  1540. #define MUIA_List_AdjustWidth           0x8042354a /* V4  i.. BOOL              */
  1541. #define MUIA_List_CompareHook           0x80425c14 /* V4  is. struct Hook *     */
  1542. #define MUIA_List_ConstructHook         0x8042894f /* V4  is. struct Hook *     */
  1543. #define MUIA_List_DestructHook          0x804297ce /* V4  is. struct Hook *     */
  1544. #define MUIA_List_DisplayHook           0x8042b4d5 /* V4  is. struct Hook *     */
  1545. #define MUIA_List_Entries               0x80421654 /* V4  ..g LONG              */
  1546. #define MUIA_List_First                 0x804238d4 /* V4  ..g LONG              */
  1547. #define MUIA_List_Format                0x80423c0a /* V4  isg STRPTR            */
  1548. #define MUIA_List_InsertPosition        0x8042d0cd /* V9  ..g LONG              */
  1549. #define MUIA_List_MultiTestHook         0x8042c2c6 /* V4  is. struct Hook *     */
  1550. #define MUIA_List_Quiet                 0x8042d8c7 /* V4  .s. BOOL              */
  1551. #define MUIA_List_SourceArray           0x8042c0a0 /* V4  i.. APTR              */
  1552. #define MUIA_List_Title                 0x80423e66 /* V6  isg char *            */
  1553. #define MUIA_List_Visible               0x8042191f /* V4  ..g LONG              */
  1554.  
  1555. #define MUIV_List_Active_Off -1
  1556. #define MUIV_List_Active_Top -2
  1557. #define MUIV_List_Active_Bottom -3
  1558. #define MUIV_List_Active_Up -4
  1559. #define MUIV_List_Active_Down -5
  1560. #define MUIV_List_Active_PageUp -6
  1561. #define MUIV_List_Active_PageDown -7
  1562. #define MUIV_List_ConstructHook_String -1
  1563. #define MUIV_List_CopyHook_String -1
  1564. #define MUIV_List_CursorType_None 0
  1565. #define MUIV_List_CursorType_Bar 1
  1566. #define MUIV_List_CursorType_Rect 2
  1567. #define MUIV_List_DestructHook_String -1
  1568.  
  1569.  
  1570. /****************************************************************************/
  1571. /** Floattext                                                              **/
  1572. /****************************************************************************/
  1573.  
  1574. #ifdef _DCC
  1575. extern char MUIC_Floattext[];
  1576. #else
  1577. #define MUIC_Floattext "Floattext.mui"
  1578. #endif
  1579.  
  1580. /* Attributes */
  1581.  
  1582. #define MUIA_Floattext_Justify          0x8042dc03 /* V4  isg BOOL              */
  1583. #define MUIA_Floattext_SkipChars        0x80425c7d /* V4  is. STRPTR            */
  1584. #define MUIA_Floattext_TabSize          0x80427d17 /* V4  is. LONG              */
  1585. #define MUIA_Floattext_Text             0x8042d16a /* V4  isg STRPTR            */
  1586.  
  1587.  
  1588.  
  1589. /****************************************************************************/
  1590. /** Volumelist                                                             **/
  1591. /****************************************************************************/
  1592.  
  1593. #ifdef _DCC
  1594. extern char MUIC_Volumelist[];
  1595. #else
  1596. #define MUIC_Volumelist "Volumelist.mui"
  1597. #endif
  1598.  
  1599.  
  1600. /****************************************************************************/
  1601. /** Scrmodelist                                                            **/
  1602. /****************************************************************************/
  1603.  
  1604. #ifdef _DCC
  1605. extern char MUIC_Scrmodelist[];
  1606. #else
  1607. #define MUIC_Scrmodelist "Scrmodelist.mui"
  1608. #endif
  1609.  
  1610. /* Attributes */
  1611.  
  1612.  
  1613.  
  1614.  
  1615. /****************************************************************************/
  1616. /** Dirlist                                                                **/
  1617. /****************************************************************************/
  1618.  
  1619. #ifdef _DCC
  1620. extern char MUIC_Dirlist[];
  1621. #else
  1622. #define MUIC_Dirlist "Dirlist.mui"
  1623. #endif
  1624.  
  1625. /* Methods */
  1626.  
  1627. #define MUIM_Dirlist_ReRead            0x80422d71 /* V4  */
  1628.  
  1629. /* Attributes */
  1630.  
  1631. #define MUIA_Dirlist_AcceptPattern      0x8042760a /* V4  is. STRPTR            */
  1632. #define MUIA_Dirlist_Directory          0x8042ea41 /* V4  isg STRPTR            */
  1633. #define MUIA_Dirlist_DrawersOnly        0x8042b379 /* V4  is. BOOL              */
  1634. #define MUIA_Dirlist_FilesOnly          0x8042896a /* V4  is. BOOL              */
  1635. #define MUIA_Dirlist_FilterDrawers      0x80424ad2 /* V4  is. BOOL              */
  1636. #define MUIA_Dirlist_FilterHook         0x8042ae19 /* V4  is. struct Hook *     */
  1637. #define MUIA_Dirlist_MultiSelDirs       0x80428653 /* V6  is. BOOL              */
  1638. #define MUIA_Dirlist_NumBytes           0x80429e26 /* V4  ..g LONG              */
  1639. #define MUIA_Dirlist_NumDrawers         0x80429cb8 /* V4  ..g LONG              */
  1640. #define MUIA_Dirlist_NumFiles           0x8042a6f0 /* V4  ..g LONG              */
  1641. #define MUIA_Dirlist_Path               0x80426176 /* V4  ..g STRPTR            */
  1642. #define MUIA_Dirlist_RejectIcons        0x80424808 /* V4  is. BOOL              */
  1643. #define MUIA_Dirlist_RejectPattern      0x804259c7 /* V4  is. STRPTR            */
  1644. #define MUIA_Dirlist_SortDirs           0x8042bbb9 /* V4  is. LONG              */
  1645. #define MUIA_Dirlist_SortHighLow        0x80421896 /* V4  is. BOOL              */
  1646. #define MUIA_Dirlist_SortType           0x804228bc /* V4  is. LONG              */
  1647. #define MUIA_Dirlist_Status             0x804240de /* V4  ..g LONG              */
  1648.  
  1649. #define MUIV_Dirlist_SortDirs_First 0
  1650. #define MUIV_Dirlist_SortDirs_Last 1
  1651. #define MUIV_Dirlist_SortDirs_Mix 2
  1652. #define MUIV_Dirlist_SortType_Name 0
  1653. #define MUIV_Dirlist_SortType_Date 1
  1654. #define MUIV_Dirlist_SortType_Size 2
  1655. #define MUIV_Dirlist_Status_Invalid 0
  1656. #define MUIV_Dirlist_Status_Reading 1
  1657. #define MUIV_Dirlist_Status_Valid 2
  1658.  
  1659.  
  1660. /****************************************************************************/
  1661. /** Group                                                                  **/
  1662. /****************************************************************************/
  1663.  
  1664. #ifdef _DCC
  1665. extern char MUIC_Group[];
  1666. #else
  1667. #define MUIC_Group "Group.mui"
  1668. #endif
  1669.  
  1670. /* Methods */
  1671.  
  1672.  
  1673. /* Attributes */
  1674.  
  1675. #define MUIA_Group_ActivePage           0x80424199 /* V5  isg LONG              */
  1676. #define MUIA_Group_Child                0x804226e6 /* V4  i.. Object *          */
  1677. #define MUIA_Group_Columns              0x8042f416 /* V4  is. LONG              */
  1678. #define MUIA_Group_Horiz                0x8042536b /* V4  i.. BOOL              */
  1679. #define MUIA_Group_HorizSpacing         0x8042c651 /* V4  is. LONG              */
  1680. #define MUIA_Group_PageMode             0x80421a5f /* V5  is. BOOL              */
  1681. #define MUIA_Group_Rows                 0x8042b68f /* V4  is. LONG              */
  1682. #define MUIA_Group_SameHeight           0x8042037e /* V4  i.. BOOL              */
  1683. #define MUIA_Group_SameSize             0x80420860 /* V4  i.. BOOL              */
  1684. #define MUIA_Group_SameWidth            0x8042b3ec /* V4  i.. BOOL              */
  1685. #define MUIA_Group_Spacing              0x8042866d /* V4  is. LONG              */
  1686. #define MUIA_Group_VertSpacing          0x8042e1bf /* V4  is. LONG              */
  1687.  
  1688. #define MUIV_Group_ActivePage_First 0
  1689. #define MUIV_Group_ActivePage_Last -1
  1690. #define MUIV_Group_ActivePage_Prev -2
  1691. #define MUIV_Group_ActivePage_Next -3
  1692.  
  1693.  
  1694. /****************************************************************************/
  1695. /** Register                                                               **/
  1696. /****************************************************************************/
  1697.  
  1698. #ifdef _DCC
  1699. extern char MUIC_Register[];
  1700. #else
  1701. #define MUIC_Register "Register.mui"
  1702. #endif
  1703.  
  1704. /* Attributes */
  1705.  
  1706. #define MUIA_Register_Frame             0x8042349b /* V7  i.g BOOL              */
  1707. #define MUIA_Register_Titles            0x804297ec /* V7  i.g STRPTR *          */
  1708.  
  1709.  
  1710.  
  1711. /****************************************************************************/
  1712. /** Virtgroup                                                              **/
  1713. /****************************************************************************/
  1714.  
  1715. #ifdef _DCC
  1716. extern char MUIC_Virtgroup[];
  1717. #else
  1718. #define MUIC_Virtgroup "Virtgroup.mui"
  1719. #endif
  1720.  
  1721. /* Methods */
  1722.  
  1723.  
  1724. /* Attributes */
  1725.  
  1726. #define MUIA_Virtgroup_Height           0x80423038 /* V6  ..g LONG              */
  1727. #define MUIA_Virtgroup_Left             0x80429371 /* V6  isg LONG              */
  1728. #define MUIA_Virtgroup_Top              0x80425200 /* V6  isg LONG              */
  1729. #define MUIA_Virtgroup_Width            0x80427c49 /* V6  ..g LONG              */
  1730.  
  1731.  
  1732.  
  1733. /****************************************************************************/
  1734. /** Scrollgroup                                                            **/
  1735. /****************************************************************************/
  1736.  
  1737. #ifdef _DCC
  1738. extern char MUIC_Scrollgroup[];
  1739. #else
  1740. #define MUIC_Scrollgroup "Scrollgroup.mui"
  1741. #endif
  1742.  
  1743. /* Attributes */
  1744.  
  1745. #define MUIA_Scrollgroup_Contents       0x80421261 /* V4  i.. Object *          */
  1746. #define MUIA_Scrollgroup_FreeHoriz      0x804292f3 /* V9  i.. BOOL              */
  1747. #define MUIA_Scrollgroup_FreeVert       0x804224f2 /* V9  i.. BOOL              */
  1748.  
  1749.  
  1750.  
  1751. /****************************************************************************/
  1752. /** Scrollbar                                                              **/
  1753. /****************************************************************************/
  1754.  
  1755. #ifdef _DCC
  1756. extern char MUIC_Scrollbar[];
  1757. #else
  1758. #define MUIC_Scrollbar "Scrollbar.mui"
  1759. #endif
  1760.  
  1761.  
  1762. /****************************************************************************/
  1763. /** Listview                                                               **/
  1764. /****************************************************************************/
  1765.  
  1766. #ifdef _DCC
  1767. extern char MUIC_Listview[];
  1768. #else
  1769. #define MUIC_Listview "Listview.mui"
  1770. #endif
  1771.  
  1772. /* Attributes */
  1773.  
  1774. #define MUIA_Listview_ClickColumn       0x8042d1b3 /* V7  ..g LONG              */
  1775. #define MUIA_Listview_DefClickColumn    0x8042b296 /* V7  isg LONG              */
  1776. #define MUIA_Listview_DoubleClick       0x80424635 /* V4  i.g BOOL              */
  1777. #define MUIA_Listview_Input             0x8042682d /* V4  i.. BOOL              */
  1778. #define MUIA_Listview_List              0x8042bcce /* V4  i.. Object *          */
  1779. #define MUIA_Listview_MultiSelect       0x80427e08 /* V7  i.. LONG              */
  1780. #define MUIA_Listview_ScrollerPos       0x8042b1b4 /* V10 i.. BOOL              */
  1781. #define MUIA_Listview_SelectChange      0x8042178f /* V4  ..g BOOL              */
  1782.  
  1783. #define MUIV_Listview_MultiSelect_None 0
  1784. #define MUIV_Listview_MultiSelect_Default 1
  1785. #define MUIV_Listview_MultiSelect_Shifted 2
  1786. #define MUIV_Listview_MultiSelect_Always 3
  1787. #define MUIV_Listview_ScrollerPos_Default 0
  1788. #define MUIV_Listview_ScrollerPos_Left 1
  1789. #define MUIV_Listview_ScrollerPos_Right 2
  1790.  
  1791.  
  1792. /****************************************************************************/
  1793. /** Radio                                                                  **/
  1794. /****************************************************************************/
  1795.  
  1796. #ifdef _DCC
  1797. extern char MUIC_Radio[];
  1798. #else
  1799. #define MUIC_Radio "Radio.mui"
  1800. #endif
  1801.  
  1802. /* Attributes */
  1803.  
  1804. #define MUIA_Radio_Active               0x80429b41 /* V4  isg LONG              */
  1805. #define MUIA_Radio_Entries              0x8042b6a1 /* V4  i.. STRPTR *          */
  1806.  
  1807.  
  1808.  
  1809. /****************************************************************************/
  1810. /** Cycle                                                                  **/
  1811. /****************************************************************************/
  1812.  
  1813. #ifdef _DCC
  1814. extern char MUIC_Cycle[];
  1815. #else
  1816. #define MUIC_Cycle "Cycle.mui"
  1817. #endif
  1818.  
  1819. /* Attributes */
  1820.  
  1821. #define MUIA_Cycle_Active               0x80421788 /* V4  isg LONG              */
  1822. #define MUIA_Cycle_Entries              0x80420629 /* V4  i.. STRPTR *          */
  1823.  
  1824. #define MUIV_Cycle_Active_Next -1
  1825. #define MUIV_Cycle_Active_Prev -2
  1826.  
  1827.  
  1828. /****************************************************************************/
  1829. /** Slider                                                                 **/
  1830. /****************************************************************************/
  1831.  
  1832. #ifdef _DCC
  1833. extern char MUIC_Slider[];
  1834. #else
  1835. #define MUIC_Slider "Slider.mui"
  1836. #endif
  1837.  
  1838. /* Attributes */
  1839.  
  1840. #define MUIA_Slider_Level               0x8042ae3a /* V4  isg LONG              */
  1841. #define MUIA_Slider_Max                 0x8042d78a /* V4  isg LONG              */
  1842. #define MUIA_Slider_Min                 0x8042e404 /* V4  isg LONG              */
  1843. #define MUIA_Slider_Quiet               0x80420b26 /* V6  i.. BOOL              */
  1844. #define MUIA_Slider_Reverse             0x8042f2a0 /* V4  isg BOOL              */
  1845.  
  1846.  
  1847.  
  1848. /****************************************************************************/
  1849. /** Coloradjust                                                            **/
  1850. /****************************************************************************/
  1851.  
  1852. #ifdef _DCC
  1853. extern char MUIC_Coloradjust[];
  1854. #else
  1855. #define MUIC_Coloradjust "Coloradjust.mui"
  1856. #endif
  1857.  
  1858. /* Attributes */
  1859.  
  1860. #define MUIA_Coloradjust_Blue           0x8042b8a3 /* V4  isg ULONG             */
  1861. #define MUIA_Coloradjust_Green          0x804285ab /* V4  isg ULONG             */
  1862. #define MUIA_Coloradjust_ModeID         0x8042ec59 /* V4  isg ULONG             */
  1863. #define MUIA_Coloradjust_Red            0x80420eaa /* V4  isg ULONG             */
  1864. #define MUIA_Coloradjust_RGB            0x8042f899 /* V4  isg ULONG *           */
  1865.  
  1866.  
  1867.  
  1868. /****************************************************************************/
  1869. /** Palette                                                                **/
  1870. /****************************************************************************/
  1871.  
  1872. #ifdef _DCC
  1873. extern char MUIC_Palette[];
  1874. #else
  1875. #define MUIC_Palette "Palette.mui"
  1876. #endif
  1877.  
  1878. /* Attributes */
  1879.  
  1880. #define MUIA_Palette_Entries            0x8042a3d8 /* V6  i.g struct MUI_Palette_Entry * */
  1881. #define MUIA_Palette_Groupable          0x80423e67 /* V6  isg BOOL              */
  1882. #define MUIA_Palette_Names              0x8042c3a2 /* V6  isg char **           */
  1883.  
  1884.  
  1885.  
  1886. /****************************************************************************/
  1887. /** Colorpanel                                                             **/
  1888. /****************************************************************************/
  1889.  
  1890. #ifdef _DCC
  1891. extern char MUIC_Colorpanel[];
  1892. #else
  1893. #define MUIC_Colorpanel "Colorpanel.mui"
  1894. #endif
  1895.  
  1896. /* Methods */
  1897.  
  1898.  
  1899. /* Attributes */
  1900.  
  1901.  
  1902.  
  1903.  
  1904. /****************************************************************************/
  1905. /** Popstring                                                              **/
  1906. /****************************************************************************/
  1907.  
  1908. #ifdef _DCC
  1909. extern char MUIC_Popstring[];
  1910. #else
  1911. #define MUIC_Popstring "Popstring.mui"
  1912. #endif
  1913.  
  1914. /* Methods */
  1915.  
  1916. #define MUIM_Popstring_Close           0x8042dc52 /* V7  */
  1917. #define MUIM_Popstring_Open            0x804258ba /* V7  */
  1918. struct  MUIP_Popstring_Close           { ULONG id; LONG result; };
  1919.  
  1920. /* Attributes */
  1921.  
  1922. #define MUIA_Popstring_Button           0x8042d0b9 /* V7  i.g Object *          */
  1923. #define MUIA_Popstring_CloseHook        0x804256bf /* V7  isg struct Hook *     */
  1924. #define MUIA_Popstring_OpenHook         0x80429d00 /* V7  isg struct Hook *     */
  1925. #define MUIA_Popstring_String           0x804239ea /* V7  i.g Object *          */
  1926. #define MUIA_Popstring_Toggle           0x80422b7a /* V7  isg BOOL              */
  1927.  
  1928.  
  1929.  
  1930. /****************************************************************************/
  1931. /** Popobject                                                              **/
  1932. /****************************************************************************/
  1933.  
  1934. #ifdef _DCC
  1935. extern char MUIC_Popobject[];
  1936. #else
  1937. #define MUIC_Popobject "Popobject.mui"
  1938. #endif
  1939.  
  1940. /* Attributes */
  1941.  
  1942. #define MUIA_Popobject_Follow           0x80424cb5 /* V7  isg BOOL              */
  1943. #define MUIA_Popobject_Light            0x8042a5a3 /* V7  isg BOOL              */
  1944. #define MUIA_Popobject_Object           0x804293e3 /* V7  i.g Object *          */
  1945. #define MUIA_Popobject_ObjStrHook       0x8042db44 /* V7  isg struct Hook *     */
  1946. #define MUIA_Popobject_StrObjHook       0x8042fbe1 /* V7  isg struct Hook *     */
  1947. #define MUIA_Popobject_Volatile         0x804252ec /* V7  isg BOOL              */
  1948. #define MUIA_Popobject_WindowHook       0x8042f194 /* V9  isg struct Hook *     */
  1949.  
  1950.  
  1951.  
  1952. /****************************************************************************/
  1953. /** Poplist                                                                **/
  1954. /****************************************************************************/
  1955.  
  1956. #ifdef _DCC
  1957. extern char MUIC_Poplist[];
  1958. #else
  1959. #define MUIC_Poplist "Poplist.mui"
  1960. #endif
  1961.  
  1962. /* Attributes */
  1963.  
  1964. #define MUIA_Poplist_Array              0x8042084c /* V8  i.. char **           */
  1965.  
  1966.  
  1967.  
  1968. /****************************************************************************/
  1969. /** Popasl                                                                 **/
  1970. /****************************************************************************/
  1971.  
  1972. #ifdef _DCC
  1973. extern char MUIC_Popasl[];
  1974. #else
  1975. #define MUIC_Popasl "Popasl.mui"
  1976. #endif
  1977.  
  1978. /* Attributes */
  1979.  
  1980. #define MUIA_Popasl_Active              0x80421b37 /* V7  ..g BOOL              */
  1981. #define MUIA_Popasl_StartHook           0x8042b703 /* V7  isg struct Hook *     */
  1982. #define MUIA_Popasl_StopHook            0x8042d8d2 /* V7  isg struct Hook *     */
  1983. #define MUIA_Popasl_Type                0x8042df3d /* V7  i.g ULONG             */
  1984.  
  1985.  
  1986.  
  1987. /*****************************************/
  1988. /* End of automatic header file creation */
  1989. /*****************************************/
  1990.  
  1991.  
  1992.  
  1993.  
  1994.  
  1995.  
  1996.  
  1997. /*************************************************************************
  1998. ** Structures and Macros for creating custom classes.
  1999. *************************************************************************/
  2000.  
  2001.  
  2002. /*
  2003. ** GENERAL NOTES:
  2004. **
  2005. ** - Everything described in this header file is only valid within
  2006. **   MUI classes. You may never use any of these things out of
  2007. **   a class, e.g. in a traditional MUI application.
  2008. **
  2009. ** - Except when otherwise stated, all structures are strictly read only.
  2010. */
  2011.  
  2012.  
  2013. /* Global information for every object */
  2014.  
  2015. struct MUI_GlobalInfo
  2016. {
  2017.     ULONG priv0;
  2018.     Object                   *mgi_ApplicationObject;
  2019.  
  2020.     /* ... private data follows ... */
  2021. };
  2022.  
  2023.  
  2024. /* Instance data of notify class */
  2025.  
  2026. struct MUI_NotifyData
  2027. {
  2028.     struct MUI_GlobalInfo *mnd_GlobalInfo;
  2029.     ULONG                  mnd_UserData;
  2030.     ULONG priv1;
  2031.     ULONG priv2;
  2032.     ULONG priv3;
  2033.     ULONG priv4;
  2034.     ULONG priv5;
  2035. };
  2036.  
  2037.  
  2038. /* MUI_MinMax structure holds information about minimum, maximum
  2039.    and default dimensions of an object. */
  2040.  
  2041. struct MUI_MinMax
  2042. {
  2043.     WORD MinWidth;
  2044.     WORD MinHeight;
  2045.     WORD MaxWidth;
  2046.     WORD MaxHeight;
  2047.     WORD DefWidth;
  2048.     WORD DefHeight;
  2049. };
  2050.  
  2051. #define MUI_MAXMAX 10000 /* use this if a dimension is not limited. */
  2052.  
  2053.  
  2054. /* (partial) instance data of area class */
  2055.  
  2056. struct MUI_AreaData
  2057. {
  2058.     struct MUI_RenderInfo *mad_RenderInfo;  /* RenderInfo for this object */
  2059.     ULONG priv6;
  2060.     struct TextFont       *mad_Font;        /* Font */
  2061.     struct MUI_MinMax      mad_MinMax;      /* min/max/default sizes */
  2062.     struct IBox            mad_Box;         /* position and dimension */
  2063.     BYTE                   mad_addleft;     /* frame & innerspacing left offset */
  2064.     BYTE                   mad_addtop;      /* frame & innerspacing top offset  */
  2065.     BYTE                   mad_subwidth;    /* frame & innerspacing add. width  */
  2066.     BYTE                   mad_subheight;   /* frame & innerspacing add. height */
  2067.     ULONG                  mad_Flags;       /* see definitions below */
  2068.  
  2069.     /* ... private data follows ... */
  2070. };
  2071.  
  2072. /* Definitions for mad_Flags, other flags are private */
  2073.  
  2074. #define MADF_DRAWOBJECT        (1<< 0) /* completely redraw yourself */
  2075. #define MADF_DRAWUPDATE        (1<< 1) /* only update yourself */
  2076.  
  2077.  
  2078.  
  2079.  
  2080. /* MUI's draw pens */
  2081.  
  2082. #define MPEN_SHINE      0
  2083. #define MPEN_HALFSHINE  1
  2084. #define MPEN_BACKGROUND 2
  2085. #define MPEN_HALFSHADOW 3
  2086. #define MPEN_SHADOW     4
  2087. #define MPEN_TEXT       5
  2088. #define MPEN_FILL       6
  2089. #define MPEN_ACTIVEOBJ  7
  2090. #define MPEN_COUNT      8
  2091.  
  2092.  
  2093. /* Information on display environment */
  2094.  
  2095. struct MUI_RenderInfo
  2096. {
  2097.     Object          *mri_WindowObject;  /* valid between MUIM_Setup/MUIM_Cleanup */
  2098.  
  2099.     struct Screen   *mri_Screen;        /* valid between MUIM_Setup/MUIM_Cleanup */
  2100.     struct DrawInfo *mri_DrawInfo;      /* valid between MUIM_Setup/MUIM_Cleanup */
  2101.     UWORD           *mri_Pens;          /* valid between MUIM_Setup/MUIM_Cleanup */
  2102.     struct Window   *mri_Window;        /* valid between MUIM_Show/MUIM_Hide */
  2103.     struct RastPort *mri_RastPort;      /* valid between MUIM_Show/MUIM_Hide */
  2104.  
  2105.     /* ... private data follows ... */
  2106. };
  2107.  
  2108.  
  2109.  
  2110. /* the following macros can be used to get pointers to an objects
  2111.    GlobalInfo and RenderInfo structures. */
  2112.  
  2113. struct __dummyXFC2__
  2114. {
  2115.     struct MUI_NotifyData mnd;
  2116.     struct MUI_AreaData   mad;
  2117. };
  2118.  
  2119. #define muiNotifyData(obj) (&(((struct __dummyXFC2__ *)(obj))->mnd))
  2120. #define muiAreaData(obj)   (&(((struct __dummyXFC2__ *)(obj))->mad))
  2121.  
  2122. #define muiGlobalInfo(obj) (((struct __dummyXFC2__ *)(obj))->mnd.mnd_GlobalInfo)
  2123. #define muiUserData(obj)   (((struct __dummyXFC2__ *)(obj))->mnd.mnd_UserData)
  2124. #define muiRenderInfo(obj) (((struct __dummyXFC2__ *)(obj))->mad.mad_RenderInfo)
  2125.  
  2126.  
  2127.  
  2128. /* User configurable keyboard events coming with MUIM_HandleInput */
  2129.  
  2130. enum
  2131. {
  2132.     MUIKEY_RELEASE = -2, /* not a real key, faked when MUIKEY_PRESS is released */
  2133.     MUIKEY_NONE    = -1,
  2134.     MUIKEY_PRESS,
  2135.     MUIKEY_TOGGLE,
  2136.     MUIKEY_UP,
  2137.     MUIKEY_DOWN,
  2138.     MUIKEY_PAGEUP,
  2139.     MUIKEY_PAGEDOWN,
  2140.     MUIKEY_TOP,
  2141.     MUIKEY_BOTTOM,
  2142.     MUIKEY_LEFT,
  2143.     MUIKEY_RIGHT,
  2144.     MUIKEY_WORDLEFT,
  2145.     MUIKEY_WORDRIGHT,
  2146.     MUIKEY_LINESTART,
  2147.     MUIKEY_LINEEND,
  2148.     MUIKEY_GADGET_NEXT,
  2149.     MUIKEY_GADGET_PREV,
  2150.     MUIKEY_GADGET_OFF,
  2151.     MUIKEY_WINDOW_CLOSE,
  2152.     MUIKEY_WINDOW_NEXT,
  2153.     MUIKEY_WINDOW_PREV,
  2154.     MUIKEY_HELP,
  2155.     MUIKEY_POPUP,
  2156.     MUIKEY_COUNT /* counter */
  2157. };
  2158.  
  2159.  
  2160. /* Some useful shortcuts. define MUI_NOSHORTCUTS to get rid of them */
  2161.  
  2162. #ifndef MUI_NOSHORTCUTS
  2163.  
  2164. #define _app(obj)         (muiGlobalInfo(obj)->mgi_ApplicationObject)
  2165. #define _win(obj)         (muiRenderInfo(obj)->mri_WindowObject)
  2166. #define _dri(obj)         (muiRenderInfo(obj)->mri_DrawInfo)
  2167. #define _window(obj)      (muiRenderInfo(obj)->mri_Window)
  2168. #define _screen(obj)      (muiRenderInfo(obj)->mri_Screen)
  2169. #define _rp(obj)          (muiRenderInfo(obj)->mri_RastPort)
  2170. #define _left(obj)        (muiAreaData(obj)->mad_Box.Left)
  2171. #define _top(obj)         (muiAreaData(obj)->mad_Box.Top)
  2172. #define _width(obj)       (muiAreaData(obj)->mad_Box.Width)
  2173. #define _height(obj)      (muiAreaData(obj)->mad_Box.Height)
  2174. #define _right(obj)       (_left(obj)+_width(obj)-1)
  2175. #define _bottom(obj)      (_top(obj)+_height(obj)-1)
  2176. #define _addleft(obj)     (muiAreaData(obj)->mad_addleft  )
  2177. #define _addtop(obj)      (muiAreaData(obj)->mad_addtop   )
  2178. #define _subwidth(obj)    (muiAreaData(obj)->mad_subwidth )
  2179. #define _subheight(obj)   (muiAreaData(obj)->mad_subheight)
  2180. #define _mleft(obj)       (_left(obj)+_addleft(obj))
  2181. #define _mtop(obj)        (_top(obj)+_addtop(obj))
  2182. #define _mwidth(obj)      (_width(obj)-_subwidth(obj))
  2183. #define _mheight(obj)     (_height(obj)-_subheight(obj))
  2184. #define _mright(obj)      (_mleft(obj)+_mwidth(obj)-1)
  2185. #define _mbottom(obj)     (_mtop(obj)+_mheight(obj)-1)
  2186. #define _font(obj)        (muiAreaData(obj)->mad_Font)
  2187. #define _flags(obj)       (muiAreaData(obj)->mad_Flags)
  2188.  
  2189. #endif
  2190.  
  2191.  
  2192.  
  2193. /* MUI_CustomClass returned by MUI_CreateCustomClass() */
  2194.  
  2195. struct MUI_CustomClass
  2196. {
  2197.     APTR mcc_UserData;                  /* use for whatever you want */
  2198.  
  2199.     struct Library *mcc_UtilityBase;    /* MUI has opened these libraries */
  2200.     struct Library *mcc_DOSBase;        /* for you automatically. You can */
  2201.     struct Library *mcc_GfxBase;        /* use them or decide to open     */
  2202.     struct Library *mcc_IntuitionBase;  /* your libraries yourself.       */
  2203.  
  2204.     struct IClass *mcc_Super;           /* pointer to super class   */
  2205.     struct IClass *mcc_Class;           /* pointer to the new class */
  2206.  
  2207.     /* ... private data follows ... */
  2208. };
  2209.  
  2210.  
  2211. #endif /* MUI_H */
  2212.